[one_demo_16]直接插入排序的demo
阿新 • • 發佈:2018-12-02
直接插入排序的基本思想是迴圈一個數組,將當前下標插入到下標之前已排好序的陣列部分,迴圈結束,插入結束,則陣列排序完畢。
java實現
/** * 測試插入排序 */ @Test public void testInsertSort() { int[] array = { 1, 33, 23, 5, 21, 14, 64, 125, 3 }; inserSort(array); System.out.print("排序結束後:"); printArray(array); } /** * 插入排序法 */ public void inserSort(int[] array) { // 健壯性判斷 if (array.length < 2) { return; } // 迴圈陣列 for (int i = 0; i < array.length; i++) { int temp = array[i]; int j = i; // 遍歷當前下標前的陣列部分,如果當前下標值小於當前下標前的陣列值,則陣列值後移 while (j > 0 && temp < array[j - 1]) { array[j] = array[j - 1]; j--; } // 遍歷結束後,將元素插入結束下標的位置 array[j] = temp; // 列印陣列,觀察排序過程 System.out.print("第" + i + "次排序後:"); printArray(array); System.out.println(); } } /** * 列印陣列 */ public void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + "\t"); } }