我发现很多的人都喜欢把选择排序弄成冒泡排序,包括今天遇到的面试官也一样,冒泡排序的原理是[color=red][b]相邻的两个做比较[/b][/color],大的沉下去,小的漂上去,只要记住这个就不容易出错了。
冒泡排序:
public class MaoPao {
public static void main(String [] args){
int temp;
int [] a ={1,5,4,9,3,6,7,2,8};
for(int i=1;i<a.length;i++){
for(int j=1;j<=a.length-i;j++){
if(a[j-1]>a[j]){
temp = a[j-1];
a[j-1] = a[j];
a[j]= temp;
}
}
}for(int k=0;k<a.length;k++){
System.out.print(a[k]+" ");
}
}
}
选择排序:
void xuanZhe(int[] a){
for(int i=0; i<a.length;++i){
for(int j=i+1;j<a.length;j++){
if(a[i] <a[j]){
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
}
仔细一看,他们之间差别还是很大的
冒泡排序:
public class MaoPao {
public static void main(String [] args){
int temp;
int [] a ={1,5,4,9,3,6,7,2,8};
for(int i=1;i<a.length;i++){
for(int j=1;j<=a.length-i;j++){
if(a[j-1]>a[j]){
temp = a[j-1];
a[j-1] = a[j];
a[j]= temp;
}
}
}for(int k=0;k<a.length;k++){
System.out.print(a[k]+" ");
}
}
}
选择排序:
void xuanZhe(int[] a){
for(int i=0; i<a.length;++i){
for(int j=i+1;j<a.length;j++){
if(a[i] <a[j]){
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
}
仔细一看,他们之间差别还是很大的