4種排序方式

2021-07-16 18:33:11 字數 1374 閱讀 2852

四種排序方式從時間複雜度和空間複雜度比較

排序法最差時間分析

平均時間複雜度

穩定度空間複雜度

氣泡排序

o(n2)

o(n2)

穩定o(1)

快速排序

o(n2)

o(n*log2n)

不穩定o(log2n)~o(n)

選擇排序

o(n2)

o(n2)

穩定o(1)

二叉樹排序

o(n2)

o(n*log2n)

不一定o(n)

插入排序

o(n2)

o(n2)

穩定o(1)

堆排序o(n*log2n)

o(n*log2n)

不穩定o(1)

希爾排序

o(n1.25)

不穩定o(1)

氣泡排序:(

bubble sort)氣泡排序方法是最簡單的排序方法。這種方法的基本思想是,將待排序的元素看作是豎著排列的「氣泡」,較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個「氣泡」序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確。如果發現兩個相鄰元素的順序不對,即「輕」的元素在下面,就交換它們的位置。顯然,處理一遍之後,「最輕」的元素就浮到了最高位置;處理二遍之後,「次輕」的元素就浮到了次高位置。在作第二遍處理時,由於最高位置上的元素已是「最輕」元素,所以不必檢查。一般地,第i遍處理時,不必檢查第i高位置以上的元素,因為經過前面i-1遍的處理,它們已正確地排好序。

插入排序(insertion sort)插入排序的基本思想是,經過i-1遍處理後,l[1..i-1]己排好序。第i遍處理僅將l插入l[1..i-1]的適當位置,使得l[1..i]又是排好序的序列。要達到這個目的,我們可以用順序比較的方法。首先比較l和l[i-1],如果l[i-1]≤ l,則l[1..i]已排好序,第i遍處理就結束了;否則交換l與l[i-1]的位置,繼續比較l[i-1]和l[i-2],直到找到某乙個位置j(1≤j≤i-1),使得l[j] ≤l[j+1]時為止。

選擇排序(selection sort)選擇排序的基本思想是對待排序的記錄序列進行n-1遍的處理,第 i 遍處理是將[i..n]中最小者與位置 i 交換位置。這樣,經過 i 遍處理之後,前 i 個記錄的位置已經是正確的了。

快速排序(quick sort)快速排序是對氣泡排序的一種本質改進。它的基本思想是通過一趟掃瞄後,使得排序序列的長度能大幅度地減少。在氣泡排序中,一次掃瞄只能確保最大數值的數移到正確位置,而待排序序列的長度可能只減少1。快速排序通過一趟掃瞄,就能確保某個數(以它為基準點吧)的左邊各數都比它小,右邊各數都比它大。然後又用同樣的方法處理它左右兩邊的數,直到基準點的左右只有乙個元素為止。

排序 4種排序

1.氣泡排序 穩定 o n n 比較相鄰的元素,如果前乙個比後乙個大,就把她們兩個調換位置 對每一對相鄰的元素作同樣處理,從開始到最後一對,這步做完後,最後的元素會是最大的數。氣泡排序 從小到大排序,從第乙個元素開始,相鄰元素比較,j比j 1大的,交換位置。public class bubbleso...

4種隱藏方式

css隱藏方式 1 display none 反 顯示 display block 2 height 0px 反 顯示 height 100px 3 visibility hidden 特點 效果隱藏 在瀏覽器佔據位置 4 刪除dom元素 顯示時候在進行新增dom元素 理論深 區別 display ...

5種排序方式

package sort public class sortmethods 1.第一種排序,比較簡單,氣泡排序 bubblesort a bubblesort2 a 2.選擇排序,先遍歷一遍,把最大的數的位置找出來,放在最後乙個位置,即a a.length 1 selectsort a 3.插入排序...