冒泡排序

来源:互联网 发布:破解局域网mac限制 编辑:程序博客网 时间:2024/06/05 11:37
//冒泡排序
    
//int b[5] = {15,18,30,27,7};
    
//第一趟排序比较四次,排序之后 15,18,27,7,30
//    for (int j = 0; j < 4; j++) {
//        if (b[j] > b[j + 1]) {
            
//交换两个元素的值
//            
//         int m= b[j + 1] ;
//            b[j + 1] = b[j];
//            b[j] = m;
//            
//        }
//    }
    
//第二趟排序 15 18 7 27 30
//    for ( int j = 0; j < 3; j++) {
//        if (b[j] > b[j + 1]) {
//            int m= b[j + 1] ;
//            b[j + 1] = b[j];
//            b[j] = m;
//        }
//    }
    
//第三趟排序 15 7 18 27  30
//    for (int j = 0; j < 2; j++) {
//        if (b[j] > b[j + 1]) {
//            int m= b[j + 1] ;
//            b[j + 1] = b[j];.
//            b[j] = m;
//        }
//    }
    
//第四趟排序 7 15 18 27 30
//    for (int j = 0; j < 1; j++) {
//        if (b[j] > b[j + 1]) {
//            int m = b[j + 1];
//            b[j + 1] = b[j];
//            b[j] = m;
//        }
//    }
//    for (int j = 0; j < 5; j++) {
//        printf("%d ",b[j]);
//    }
/冒泡排序采用双层for循环
    
//外层循环决定比较趟数
    
//内层循环决定每一趟比较的次数
    
//最外层 -1 可以不减,-1的目的是提高程序的执行效率
    
//内层减1必须要减,1的目的是为了防止比较的时候超出数组的范围
    
//内层-1可以不减,作用是缩小无序区的范围,提高程序执行的效率
//    for (int i = 0; i < 5(元素个数) - 1; i++) {
//        for (int j = 0; j < 5 - 1 - i; j++) {
//                    if (b[j] > b[j + 1]) {
//            //交换两个元素的值
//            
//                     int m= b[j + 1] ;
//                        b[j + 1] = b[j];
//                        b[j] = m;
//            
//                    }
//                }
//
//    }
 
//   for (int j = 0; j < 5; j++) {
//                printf("%d ",b[j]);
//            }
    
//随机产生10[20,40]的数,并对10个数从小到大排序
//    int b[10] = {};
//    for (int i = 0; i < 10; i++) {
//        b[i] = arc4random() % 21 + 20;
//        printf("%d ",b[i]);
//    }
//    for (int i = 0; i < 10 - 1; i++) {
//        for (int j = 0; j < 10 - 1 - i; j++) {
//            if (b[j] > b[j + 1]) {
//                //交换两个元素的值
//                
//                int m= b[j + 1] ;
//                b[j + 1] = b[j];
//                b[j] = m;
//                
//            }
//        }
//        
//    }
//    printf("\n");
//    for (int j = 0; j < 10; j++) {
//        printf("%d ",b[j]);
//    }
0 0