直接插入排序實現
阿新 • • 發佈:2018-12-13
public class Sort { public static void main(String[] args) { int[] arr = {1, 4, 6, 2, 3, 4}; sort1(arr); for (int i = 0; i < arr.length; i++) { System.out.print(i + " "); } } //直接插入排序 //插入排序表面簡單,尤其是適合欺騙眼高手低的loser,它其實屬於 //陣列操作的前移法,將遍歷時候順帶後移已近操作的數 //其實,基於陣列無外乎前移法和重建法和分割槽法,都是經典的思想 //具有較高的技巧性 public static void sort1(int[] arr){ for (int i = 1; i < arr.length; i++){ int temp = arr[i]; int index = 0; for (index = i;index > 0 && temp < arr[index-1]; index--){ arr[index] = arr[index - 1]; } arr[index] = temp; } } }
**注意事項:**在往前找插入位置時候,需要儲存臨時變數,與這個臨時變數比較直到找到這個位置,不需要每次比較久交換,多此一舉。核心點你要知道你定義的index變數的意義,它相當於一個遊標,注意遊標勢必要越界問題。