1樓:百度文庫精選
內容來自使用者:cngdzjl
資料結構各種排序方法的綜合比較
結論: 排序方法 平均時間 最壞時間 輔助儲存 簡單排序 o(n2) o(n2) o(1) 快速排序 o(nlogn) o(n2) o(logn) 堆排序 o(nlogn) o(nlogn) o(1) 歸併排序 o(nlogn) o(nlogn) o(n) 基數排序 o(d(n+rd)) o(d(n+rd)) o(rd)ps:直接插入排序、氣泡排序為簡單排序,希爾排序、堆排序、快速排序為不穩定排序
一、時間效能
按平均的時間效能來分,有三類排序方法:時間複雜度為o(nlogn)的方法有:快速排序、堆排序和歸併排序,其中以快速排序為最好;
時間複雜度為o(n2)的有:直接插入排序、起泡排序和簡單選擇排序,其中以直接插入為
最好,特別是對那些對關鍵字近似有序的記錄序列尤為如此;
時間複雜度為o(n)的排序方法只有,基數排序。
當待排記錄序列按關鍵字順序有序時,直接插入排序和起泡排序能達到o(n)的時間複雜度;而對於快速排序而言,這是最不好的情況,此時的時間效能蛻化為o(n2),因此是應該儘量避免的情況。簡單選擇排序、堆排序和歸併排序的時間效能不隨記錄序列中關鍵字的分佈而改變。二、空間效能
指的是排序過程中所需的輔助空間大小。
1.所有的簡單排序方法(包括:直接插入、起泡和簡單選擇3....
2樓:張幾何
這些全是內排,有什麼問題你再問我
資料結構中幾種常見的排序演算法之比較
3樓:匿名使用者
冒泡。 複雜度n平方。適用於陣列
插入排序。複雜度n平方。適用於連結串列
快排。複雜度nlog(n)。
希爾排序。這是一種插入排序,但是從統計角度看,比插入排序要快。
資料結構快速排序問題,C語言資料結構 快速排序的問題
由於你傳遞的l是值傳遞,在快速排序內部出現了一個名字一樣的區域性變數,只是區域性變數被排序了,並不是傳入的變數被排序,可以採用傳地址的方式解決,或者不定義形參,直接採用全域性變數。我使用前者幫你實現了 再者,快速排序 有點問題,幫你修改了下 include include define maxsiz...
資料結構中,資料結構中,Head Head next什麼意思
頭插法 例如輸入a,b,c 下面兩塊分別表示資料域和指標域,代表null head c next b next a 實現語句 無頭結點 head null while 迴圈條件 頭插入法的輸出順序與你的輸入順序相反 尾插法 無頭結點 head a next b next c 實現 head null...
資料結構中的作用,資料結構中的作用是什麼
是c 中的引用符號,用作 函式形參是表明傳遞的是實參 的一個引用 即實參的一版個別名 這樣在函式中對權形參操作會影響到實參,通常用 來通過函式改變實參的值。如果沒有 則傳遞的只是實參的一個副本,在函式中對形參的操作不會影響到實參。正如例子中,對於l凡涉及到要通過函式修改的它時 如在表中插入元素lis...