8 排序演算法的各種詳解

2021-08-25 17:29:08 字數 1044 閱讀 4105

1.插入排序時間複雜度為o(n2)–最壞情況

插入排序原理很簡單,講一組資料分成兩組,我分別將其稱為有序組與待插入組。每次從待插入組中取出乙個元素,與有序組的元素進行比較,並找到合適的位置,將該元素插到有序組當中。就這樣,每次插入乙個元素,有序組增加,待插入組減少。直到待插入組元素個數為0。當然,插入過程中涉及到了元素的移動。

為了排序方便,我們一般將資料第乙個元素視為有序組,其他均為待插入組。

2.選擇排序

若從大到小排列,每次選擇剩餘數中的最大的放在前面

時間複雜度為o(n2),

#include

#include

#include

#include

using

namespace

std;

int a[20]=;

void sor()

}}int main()

3.氣泡排序

每次交換相鄰的兩個數,直到哪一次一次也不交換為止,時間複雜度為o(n2)

#include

#include

#include

#include

using

namespace

std;

int a[20]= ;

void sor()

if(flag==0) break;

}}int main()

8 排序演算法

1 氣泡排序 bubble sort 演算法描述 比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數 針對所有的元素重複以上的步驟,除了最後乙個 重複步驟1 3,直到排序完成。實現 public clas...

8 排序演算法 堆排序

堆排序 heapsort 是指利用堆這種資料結構所設計的一種排序演算法。堆積是乙個近似完全二叉樹的結構,並同時滿足堆積的性質 即子結點的鍵值或索引總是小於 或者大於 它的父節點。堆排序可以說是一種利用堆的概念來排序的選擇排序。分為兩種方法 堆排序的平均時間複雜度為 nlogn 1.演算法步驟 建立乙...

JavaSE學習 8 排序

1 內部排序 將需要處理的所有資料都載入到內部儲存器中進行排序 交換式排序法 選擇式排序法和插入式排序法 2 資料量過大,無法全部載入到記憶體中,需要借助外部儲存進行排序。合併排序和直接合併排序 排序 就是把一組記錄 元素 按照某個域的值遞增或遞減的次序重新排列的過程。交換式排序 屬於內部排序,運用...