选择排序

public static void selectSort(int[] a)
{
int temp = 0; //交换使用的临时变量
int minIndex = 0; //最小数的下标
for (int i = 0; i < a.length; i++) { //遍历数组
minIndex = i; //minIndex为当前遍历的元素
for (int j = i+1; j < a.length; j++) { //在当前元素之后找出最小的
if(a[minIndex]>a[j])
{
temp = a[minIndex]; //交换
a[minIndex] = a[j];
a[j] = temp;
}
}
} //每次找到最小的放到前面,则最后数组有序
}

12-咸鱼学Java-数组排序之选择,插入_插入排序


选择排序每次再数列里面找到其后数列中最小的数,放到有序数列的最后位置,直到最后全部有序

插入排序

public static void insertSort(int a[])
{ int temp =0,j;
for (int i = 1; i < a.length; i++) {
temp = a[i]; //从i号位置开始进行比较
for (j = i-1; j >=0; j--) {
if(a[j]>temp)
{
a[j+1] = a[j];
}else
{ //每次排序之后前面已经有序,找到第一个比tmp小的
break;
}
}
a[j+1] = temp; //找到比temp小的放到当前位置之后
}

}

12-咸鱼学Java-数组排序之选择,插入_插入排序_02


插入排序每次在后面找到小的就插入到数列前面,所以前面的一直保持有序,只需要将后面的元素逐渐插入到前面的有序列表中。