设为首页 加入收藏

TOP

经典排序之冒泡排序
2014-11-23 22:06:52 来源: 作者: 【 】 浏览:19
Tags:经典 排序 冒泡

经典排序之冒泡排序


核心代码:


/*冒泡排序


原始数据: 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个元素的数组:\n");


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("\n进行冒泡排序,产生一组从小到大顺序的数组:\n");


for (int i = 0; i < 20; i++) {


printf("%d ", a[i]);


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇百度面试题,二进制数移位编程 下一篇Linux内核Crash分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: