插入排序:
思路:
将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。
时间复杂度:
最好 O(N) 当数组正序
最坏 O(N ^ 2) 当数组倒叙
(一)代码
public class InsertSort { public static void main(String[] args) { int arr[] = new int[]{3,3,4,7,13,435,54,2,6666,234}; insertSort(arr); System.out.print(Arrays.toString(arr)); } private static void insertSort(int[] arr) { for(int i = 1 ; i < arr.length ; i++){ int temp = arr[i]; int j = i; while(j > 0 && temp < arr[j - 1]){ arr[j] = arr[j-1]; j--; } //存在比之前小的元素,插入 if(i != j){ arr[j] = temp; } } } }
嘀嘀嘀