基礎演算法之四 排序 之桶排序

2021-06-16 08:42:47 字數 614 閱讀 8408

桶排序是迄今為止最快的一種排序,其時間複雜度僅為ο(n),也就是線性複雜度。

其主要思想在於:建立有序的桶, 遍歷待排序元素,在遍歷此元素的同時,將其對映到對應的桶中。這樣,遍歷一遍, 所有的元素就在桶中有了對映。 而桶是有序的, 再從有序的桶中,將資料重新置於陣列中 , 這樣就完成了排序。

1. 最簡單的桶排序演算法

示例: 

待排數字[6 2 4 1 5 9],

準備10個空桶,最大數個空桶

1, 順序從待排陣列中取出數字,首先6被取出,然後把6入6號桶

這個過程類似這樣:空桶[ 待排陣列[ 0 ] ] =

待排陣列[ 0 ]

[6 2 4 1 5 9]           待排陣列

[0 0 0 0 0 0 6 0 0 0]   空桶

[0 1 2 3 4 5 6 7 8 9]   桶編號(實際不存在)

2, 順序從待排陣列中取出下乙個數字,此時2被取出,將其放入2號桶,是幾就放幾號桶

[6 2 4 1 5 9]           待排陣列

[0 0 2 0 0 0 6 0 0 0]   空桶

演算法入門(一)排序之桶排序

當我們需要對一組資料 無序 進行排序時,假設期末考試完了,老師要按照分數對大家的名次進行排序,這裡假設五個同學分別考了 5分 3分 5分 2分 8分 滿分十分 當然,我們一下子就看出了其中的奧妙,但是我們用程式該怎麼寫呢?我們可以建立乙個大小為11的陣列 因為這裡統計的是0到10之間的數字出現次數 ...

9 排序演算法 桶排序

桶排序是計數排序的公升級版。它利用了函式的對映關係,高效與否的關鍵就在於這個對映函式的確定。為了使桶排序更加高效,我們需要做到這兩點 在額外空間充足的情況下,盡量增大桶的數量 使用的對映函式能夠將輸入的 n 個資料均勻的分配到 k 個桶中 同時,對於桶中元素的排序,選擇何種比較排序演算法對於效能的影...

ACM基礎(四) 排序之快速排序

二 c 實現 快速排序,也是分治法。意義 就是通過pivot將陣列分成兩部分,前面的一部分小於等於pivot,後面的一部分大於pivot。將倒數第一作為 軸 pivot 建立兩個哨i 開始再往前乙個 i 1表示大於pivot的元素 j 遍歷的 從開始到倒數第二 表示當前小於等於pivot的元素 遍歷...