黑马程序员技术交流社区

标题: 冒泡排序关于外层for循环i < len和i < len-1有什么区别 [打印本页]

作者: junjunzhang    时间: 2015-11-28 17:35
标题: 冒泡排序关于外层for循环i < len和i < len-1有什么区别
void maoPao1(int arr[],int len){
   
    int temp;
   
//    双重循环

    for (int i = 0; i < len; i++) {
        
        for (int j = 0; j < len - 1 - i; j++) {
            
            if (arr[j] > arr[j+1]){
            
                temp = arr[j];
               
                arr[j] = arr[j+1];
               
                arr[j+1] = temp;      
            }
        }
    }
}
void maoPao2(int arr[],int len){
   
    int temp;
   
//    双重循环

    for (int i = 0; i < len-1; i++) {
        
        for (int j = 0; j < len - 1 - i; j++) {
            
            if (arr[j] > arr[j+1]){
            
                temp = arr[j];
               
                arr[j] = arr[j+1];
               
                arr[j+1] = temp;      
            }
        }
    }
}
int main(int argc, const char * argv[]) {

    int a[10] = {1,234,23,45,12,34,19,5,654,300};
   
    for (int i = 0; i < 10; i++) {
        
        printf("%d\t",a[i]);
   
    }
   
    printf("\n");
   
//    进行排序
   
    maoPao1(a, 10);
   
    for (int i = 0; i < 10; i++) {
        
        printf("%d\t",a[i]);
        
    }
   
    printf("\n");

maoPao2(a, 10);
   
    for (int i = 0; i < 10; i++) {
        
        printf("%d\t",a[i]);
        
    }
   
    printf("\n");
   
    return 0;
}
作者: paul20150103    时间: 2015-11-28 17:54
谢谢分享
作者: wx_YXxWrUwd    时间: 2015-11-28 18:18
节约一次判断嘛,画图分析就知道了
作者: junjunzhang    时间: 2015-11-28 18:37
wx_YXxWrUwd 发表于 2015-11-28 18:18
节约一次判断嘛,画图分析就知道了

谢谢学长
作者: 马尔代夫的日出    时间: 2015-11-28 22:07
不错.................
作者: onlyanswer    时间: 2015-11-29 00:03
优化代码,加快效率
作者: Yip-Jun    时间: 2015-11-29 00:09
冒泡排序\选择排序是重点,要好好学习这个!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2