四種排序方式從時間複雜度和空間複雜度比較
排序法最差時間分析
平均時間複雜度
穩定度空間複雜度
氣泡排序
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.插入排序...