Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 经典排序之冒泡排序

经典排序之冒泡排序核心代码:/*冒泡排序   原始数据: 28, 30, 19, 2, 23   第一趟:         第一次:28, 30, 19, 2, 23         第二次:28, 19, 30, 2, 23         第三次:28, 19, 2, 30, 23         第四次:28, 19, 2, 23, 30   第二趟:         第一次:19, 28, 2, 23, 30         第二次:19, 2, 28, 23, 30         第三次:19, 2, 23, 28, 30   第三趟:         第一次:2, 19, 23, 28, 30         第二次:2, 19, 23, 28, 30   第四趟:         第一次:2, 19, 23, 28, 30   */    //n个元素比较n-1趟    //每趟比较次数 = 数组元素个数 - 趟数//给定一个数组//    int a[5] = {7, 2, 3, 4 ,5};//    for (int i = 0; i < 5 - 1; i++) {          //比较的趟数//        for (int j = 0; j < 5 - 1 - i; j++) {  //每趟比较的次数//            if (a[j] > a[j+1]) {//                int temp = a[j];//                a[j] = a[j + 1];//                a[j + 1] = temp;//            }//        }//    }//    printf("从小到大排序为:");//    for (int i = 0; i < 5; i++) {//        printf("%d  ", a[i]);//    }    //随机产生一组20个元素的数组取值范围为[20, 40]    int a[20] = {0};    printf("随机产生的一个包含20个元素的数组: ");    for (int i = 0; i < 20; i++) {        a[i] = arc4random()%(40 - 20 + 1) + 20; //arc4random产生随机数        printf("%d  ", a[i]);    }    for (int i = 0; i < 20 - 1; i++) {              //比较的趟数        for (int j = 0; j < 20 - 1 - i; j++) {   //每趟比较的次数            if (a[j] > a[j + 1]) {                int temp = a[j];                a[j] = a[j + 1];                a[j + 1] = temp;            }        }    }    printf(" 进行冒泡排序,产生一组从小到大顺序的数组: ");    for (int i = 0; i < 20; i++) {        printf("%d  ", a[i]);    }Python实现冒泡排序法 http://www.linuxidc.com/Linux/2014-06/103897.htmGo语言实现冒泡排序 http://www.linuxidc.com/Linux/2014-06/103844.htmC++ 使用模板实现冒泡排序 http://www.linuxidc.com/Linux/2014-02/96914.htmJava简单排序之冒泡排序代码 http://www.linuxidc.com/Linux/2013-11/92782.htm冒泡排序优化版,性能近乎翻倍 http://www.linuxidc.com/Linux/2013-09/90710.htm本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-07/104762.htm