直接插入排序的时间复杂度的O(N^2),空间复杂度是O(1)。
下面是代码:
/** * 源码名称: InsertionSort.java * 日期:2014-08-11 * 程序功能:直接插入排序 * 版权:[email protected] * 作者:A2BGeek */ public class InsertionSort { public void insertionSort(int[] in) { int length = in.length; int i, j; for (i = 1; i < length; i++) { int tmp = in[i]; for (j = i - 1; j >= 0 && tmp < in[j]; j--) { in[j + 1] = in[j]; } in[j + 1] = tmp; printArray(in); } } public void printArray(int[] in) { for (int i : in) { System.out.print(i + " "); } System.out.println(); } public static void main(String[] args) { int[] testCase = { 1, 3, 4, 10, 2, 5, 6, 7, 9, 11 }; InsertionSort mInsertionSort = new InsertionSort(); mInsertionSort.printArray(testCase); mInsertionSort.insertionSort(testCase); mInsertionSort.printArray(testCase); } }
【数据结构与算法】直接插入排序
时间: 2024-10-07 19:18:31