基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
实例:
算法实现:
public class InsertionSort { public static void main(String[] args) { System.out.PRintln("Hello World!"); int[] numbers = {57, 68, 59, 52}; insertSort(numbers); } public static void insertSort(int[] numbers){ int size = numbers.length; int temp = 0; int j = 0; for(int i=0; i<size; i++ ){ temp = numbers[i]; //假如temp比前面的值小, 则将前面的值后移 for(j = i; j>0 && temp < numbers[j-1]; j--){ numbers[j] = numbers[j-1]; } numbers[j] = temp; } System.out.println("排序后:"); for (int num : numbers) System.out.print(num + "/t"); }}Terminal输出:Hello World!52 57 59 68效率:
时间复杂度:O(n^2).
新闻热点
疑难解答