插入排序:
基本思想:将一组数,一个一个的插入到一个有序的数组中
时间复杂度O[n2]
效率要好于冒泡排序和选择排序
当数组不大时,效率很高
稳定的排序
public static void main(String[] args) {
int[]arr={4,6,3,2,8,6,9};
insertSort(arr);
for(int i:arr){
System.out.print(i+",");
}
}
public static void insertSort(int[]arr){
for(int i=1;i<arr.length;i++ ){//假设第一个数组arr[0],已经在有序的数列中
int target=arr[i];//要插入的目标数字
int j=i;
while(j>0&&target<arr[j-1]){//目标数字和它前面的所有数字进行比较,当要插入的数字小于它前面的数,将它前面的数后移一位
arr[j]=arr[j-1];
j--;
}
arr[j]=target;//将目标数字插入有序数组,保证该数组还有序
}
}