插入排序:默认数组第一个元素为有序,依次将后面的元素与其进行比较,先移动腾位置,再插入进去
for(int i=1;i<a.length;i++){
int temp = a[i];
int j;
for(j=i-1;j>=0&&temp<a[j];j--){
a[j+1] = a[j];
}
a[j+1] = temp;
}
选择排序:每次选择最大的数或最小的数,依次与外循环的i位置数进行交换
for(int i=0;i<a.length;i++){
int min = i;
for(int j=i+1;j<a.length;j++){
if(a[j]<a[min]){
min = j;
}
}
if(min!=i){
int temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}
冒泡排序:从前往后,数组的元素两两比较,将最大或者最小的数放到最后面,循环length-1次。
for(int i=1;i<a.length;i++){
boolean flag = false;
for(int j=0;j<a.length-i;j++){
if(a[j+1]<a[j]){
int temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
flag = true;
}
}
if(!flag){
break;
}
}