经典排序之冒泡排序核心代码:/*冒泡排序 原始数据: 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