首先,找到陣列中最小的那個元素;
將它與陣列中的第乙個元素交換位置;
在剩下的陣列中找到最小的元素,和陣列的第二個元素交換位置,如此迴圈往復;
public class selection
exch(a, i, min);}}
}// 陣列兩個元素比較
private static boolean less(comparable v, comparable w)
// 交換陣列的兩個元素
private static void exch(comparable a, int i, int j)
// 測試陣列是否有序
public static boolean issorted(comparable a)
}return true;
}}
public class insertion}}
}
public class shell()
while(h >= 1)
}h = h/3;}}
}
插入排序 選擇排序 氣泡排序 希爾排序
引入概念 排序穩定性 輸入資料的順序,排序後不能改變。例如,1,2,3,3,5.排序完若第乙個3和第二個3互換,則為不穩定。1.插入排序 穩定 解釋 像打撲克時整理牌時一樣,遇到小牌就插在前面比他大的前面,而後面的牌順次後移 直到處理完最後一張牌。優點 比氣泡排序只能處理相鄰資料更為靈活,適用於資料...
氣泡排序,插入排序,選擇排序,希爾排序
在另外的文章中介紹了快速,堆,歸併排序,這三個排序都是高效的排序,下面介紹一些時間複雜度為o n 2 的排序。氣泡排序,顧名思義,就是將小的元素往上冒,大的元素往下沉,實際在變成的時候用的是大的元素往下沉的方法。每一趟過後,都有乙個最大的元素被沉到底。下一次排序時陣列規模減少了1。主要應用到了相鄰兩...
插入排序 希爾插入排序
本文借鑑於lsgo實驗室創始人馬老師 演算法 希爾插入排序 delta len nums 2 while delta 0 shell delta,nums delta delta 2return nums defshell delta,key for i in range delta,len key...