黑马程序员技术交流社区
标题:
冒泡排序法和选择排序法的区别:
[打印本页]
作者:
wx_hg1q2t6v
时间:
2014-12-17 19:26
标题:
冒泡排序法和选择排序法的区别:
冒泡排序法:
设有n个数要求从小到大排列,冒泡排序法的排序过程分为如下的n-1步:
第1步 从下向上,相邻两数比较,小者调上。反复执行n-1次,第1个数最小。
第2步 从下向上,相邻两数比较,小者调上。反复执行n-2次,前2个数排好。
第k步 从下向上,相邻两数比较,小者调上。反复执行n-k次,前k个数排好。 ...
第n-1步 从下向上,相邻两数比较,小者调上。反复执行1次,排序结束。
选择排序法:
设有n个数要从小到大排列,选择排序法排序过程分为n-1步:
第一步 在第1n个数中找出最小数,然后和第一个数交换,前一个数排好。
第二步 在第2n个数中找出最小数,然后和第二个数交换,前两个数排好. ...
第二步 在第kn个数中找出最小数,然后和第k个数交换,前k个数排好.
作者:
从今以后
时间:
2014-12-17 22:20
冒泡是无脑交换,比自己小(或者大)就交换,一路换过去;选择是找出最值再交换
作者:
se7ven
时间:
2014-12-17 23:37
哥们说的好,我帮你附图一张
作者:
se7ven
时间:
2014-12-17 23:39
int main() {
//定义一个数组
int a[]={3,5,1,4,9};
//冒泡排序
for (int i=0; i<5-1; i++) {
for (int j=0; j<5-1-i; j++) {
if (a[j]>a[j+1]) {
int t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
for (int i=0; i<5; i++) {
printf("%d\t",a[i]);
}
printf("\n");
return 0;
}
作者:
se7ven
时间:
2014-12-17 23:41
int main(){
//定义一个数组
int a[]={3,5,1,4,9};
//选择排序
for (int i=0; i<5; i++) {
for (int j=i+1; j<5; j++) {
if (a[i]>a[j]) {
int t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
for (int i=0; i<5; i++) {
printf("%d\t",a[i]);
}
printf("\n");
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2