python資料結構 最全的六種排序

2022-05-19 08:05:25 字數 811 閱讀 9814

1.氣泡排序

比較相鄰的元素,如果第乙個比第二個大,那就交換位置

讓大的元素跟下乙個相鄰的元素作比較,如果大於交換位置

對所有元素重複以上步驟(除了最後乙個),直到沒有任何乙個需要作對比

2.選擇排序:

從未排序序列中找到最小的元素放到序列的初始位置,

再從剩餘未排序序列中找到最小的元素放到已排序序列的末端

以此類推直到所有元素排序完成

3.插入排序:

對於未排序的元素,在已排序的序列中從後向前進行掃瞄,找到相應位置並插入,

需要反覆把已經排序好的元素逐步向後挪位,為新元素提供插入空間。

4.快速排序:

5..希爾排序:

以間隔為n進行對待

分成n個子序列,並對n個子序列以此進行插入排序

然後整合,獲得新的序列

縮小間隔,再以間隔對待,進行插入排序

希爾排序是不穩定的,但優化了插入排序的平均時間

6.歸併排序:

按對半分,分成兩半。

對兩部分,分別進行排序(遞增)。

合併兩個序列,左右比較取小的值

python資料結構 最全的六種排序

1.氣泡排序 比較相鄰的元素,如果第乙個比第二個大,那就交換位置 讓大的元素跟下乙個相鄰的元素作比較,如果大於交換位置 對所有元素重複以上步驟 除了最後乙個 直到沒有任何乙個需要作對比 2.選擇排序 從未排序序列中找到最小的元素放到序列的初始位置,再從剩餘未排序序列中找到最小的元素放到已排序序列的末...

java 六種資料結構

arraylist實現了可變大小的陣列。它允許所有元素,包括null。arraylist沒有同步 linkedlist實現了list介面,允許null元素。此外linkedlist提供額外的get,remove,insert方法在linkedlist的首部或尾部。這些操作使linkedlist可被用...

資料結構簡單的六種排序演算法

include using namespace std void print int a,int n 將原來根節點的值賦給較大值孩子的位置 a s temp void heap int a,int n for i n i 1 i print a,n 氣泡排序 首先對迴圈次數進行遍歷 然後開始兩兩比較...