下面是排序演算法演示程式,比較直觀顯示排序演算法執行規律
[flash=200,200]
有關裡面三種排序演算法說明如下:
1.插入排序
首先新建乙個空列表,用於儲存已排序的有序數列(我們稱之為"有序列表")。
從原數列中取出乙個數,將其插入"有序列表"中,使其仍舊保持有序狀態。
重複2號步驟,直至原數列為空。
插入排序的平均時間複雜度為平方級的,效率不高,但是容易實現。它借助了"逐步擴大成果"的思想,使有序列表的長度逐漸增加,直至其長度等於原列表的長度。
2.氣泡排序
首先將所有待排序的數字放入工作列表中。
重複2號步驟,直至再也不能交換。
氣泡排序的平均時間複雜度與插入排序相同,也是平方級的,但也是非常容易實現的演算法。
3.選擇排序
設陣列內存放了n個待排數字,陣列下標從1開始,到n結束。
i=1從陣列的第i個元素開始到第n個元素,尋找最小的元素。
將上一步找到的最小元素和第i位元素交換。
如果i=n-1演算法結束,否則回到第3步
選擇排序的平均時間複雜度也是o(n^2)的。
基礎排序演算法演示
滿腦子都是階段 狀態 決策 學無止境呀 發一點基本的排序演算法,分成很多個檔案寫的,每個檔案前面帶了注釋,一起發出來,結構如下 基礎排序演算法檔案結構 sort.h 標頭檔案 main.c 主演示程式 printkeys.c 資料輸出 ifcontinue.c 演示控制 random.c 隨機初始化...
演算法 氣泡排序演示
排序原理 1 比較相鄰的元素。如果前乙個元素比後乙個元素大,就交換這兩個元素的位置 2 對每一對相鄰元素做同樣的工作,從開始第一對元素到結尾的最後一對元素。最終最後位置的元素就是最大值。public class bubblesort 交換兩個位置的元素 private static void exe...
演算法 希爾排序演示
希爾排序是針對插入排序的改良版。排序原理 1 選定乙個增長量h,按照增長量h作為資料分組的依據,對資料進行分組 2 對分好組的每一組資料完成插入排序 3 減少增長量,最小減為1,重複第二步操作 希爾排序 public class shellsort while h 1 else h h 2 判斷兩個...