- 论坛徽章:
- 0
|
冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。
而选择排序的思想也很直观:每一次排序过程,我们获取当前未排序数列中的最大(小)的元素,跟数组最右(左)端的元素进行交换,循环这个过程即可实现对整个数组排序。
是不是有点晕?俺写两段代码,俺让这两段代码尽可能地相似,就可以看出二者的不同了
下面这段是“冒泡法”
int a[]={20,10,50,40,30,70,60,80,90,100};
for(int i=0;ilength;++i){
for(int k=i;klength-1;++k){
if(a[k+1]
int tmp=a[k];a[k]=a[k+1];a[k+1]=tmp;
}
}
}
for(int i=0;ilength;++i){
System.out.print(a+" ");
}
下面的一段是“选择法”
int a[]={20,10,50,40,30,70,60,80,90,100};
for(int i=0;ilength-1;++i){
for(int k=i;klength;++k){
if(a[k]
int tmp=a[k];a[k]=a;a=tmp;
}
}
}
for(int i=0;ilength;++i){
System.out.print(a+" ");
}
输出的结果都是10 20 30 40 50 60 70 80 90 100
看明白没?
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18918/showart_298767.html |
|