與基數排序法一樣,桶排序也是一種排序的思想。
待排資料的值必須在乙個範圍內,然後把這個值域空間劃分為若干區塊,每乙個對應乙個桶,把待排陣列放入到合適的桶中,再對桶內的資料採用任意一種方式排序。整個時間複雜度分為兩部分,第一部分是入桶,為on,第二部分則是所有桶內排序的時間。《演算法導論》中證明了這個整體的時間的期望是on的,因此平均情況下是線性。
排序演算法主要分為兩大類:
基於比較的,最好為nlogn;
基於非比較的,最好為on,但是需要額外的空間。
資料結構與演算法 桶排序
桶排序可以看成是計數排序的公升級版,它將要排的資料分到多個有序的桶裡,每個桶裡的資料再單獨排序,再把每個桶的資料依次取出,即可完成排序。我們拿一組計數排序啃不掉的資料 500,6123,1700,10,9999 來舉例。第一步,我們建立 10 個桶,分別來裝 0 1000 1000 2000 200...
Python 資料結構與演算法 桶排序
簡單的桶排序 defbucksort a bucks dict 定義乙個桶變數,型別為字典 for i in a bucks.setdefault i,每個桶預設為空列表 往對應的桶中新增對應相同元素 print bucks a sort for i in range min a max a 1 i...
演算法與資料結構 常用排序演算法總結2 桶排序
排序演算法大體可分為兩種 比較排序 氣泡排序,選擇排序,插入排序,歸併排序,堆排序,快速排序等 非比較排序 基數排序,計數排序,桶排序等本文介紹非比較排序演算法中的桶排序演算法。桶排序的思想 對映函式。動態示意圖 顯然,桶內排序是桶排序效能好壞的決定因素。2 盡量的增大桶的數量。極限情況下每個桶只能...