插入排序:
思想:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出一个元素,将其插入有序表中的适当位置,使其成为一个新的有序表。
java代码
public static void insertSort(int arr[]){
for (int i = 1;i<arr.length;i++){
int insertnumber=arr[i];//选定无序数据的第一个
int index = i-1;
while (index>=0&&arr[index]>insertnumber){//当无序数据比已排序数据小的时候继续向前找
//直至找到大小合适的位置
arr[index+1] = arr[index]; //用前面的数字覆盖后面的数字,为此趟排序的数字预留出插入的空间
index--;
}
arr[index+1]=insertnumber;//将数字插入找到的空间。
}
}
public static void main(String[] args) {
int a[] = {1,-9,55,321,123,32,-99,-163,5,5,8};
insertSort(a);
System.out.println(Arrays.toString(a));
}