桶排序演算法

2021-10-01 18:46:08 字數 811 閱讀 3166

參考:

func main()

var arr [10]int

for _, v := range a

fmt.println("排序後:")

for i, v := range arr

}}首先出場的是我們的主人公小哼,上面這個可愛的娃就是啦。期末考試完了老師要將同學們的分數按照從高到低排序。小哼的班上只有5個同學,這5個同學分別考了5分、3分、5分、2分和8分,哎,考得真是慘不忍睹(滿分是10分)。接下來將分數進行從大到小排序,排序後是8 5 5 3 2。你有沒有什麼好方法編寫一段程式,讓計算機隨機讀入5個數然後將這5個數從大到小輸出?請先想一想,至少想15分鐘再往下看吧(*^__^*)。

我們這裡只需借助乙個一維陣列就可以解決這個問題。請確定你真的仔細想過再往下看哦。 首先我們需要申請乙個大小為11的陣列int a[11]。ok,現在你已經有了11個變數,編號從a[0]~a[10]。剛開始的時候,我們將a[0]~a[10]都初始化為0,表示這些分數還都沒有人得過。例如a[0]等於0就表示目前還沒有人得過0分,同理a[1]等於0就表示目前還沒有人得過1分……a[10]等於0就表示目前還沒有人得過10分

下面開始處理每乙個人的分數,第乙個人的分數是5分,我們就將相對應的a[5]的值在原來的基礎增加1,即將a[5]的值從0改為1,表示5分出現過了一次。

第二個人的分數是3分,我們就把相對應的a[3]的值在原來的基礎上增加1,即將a[3]的值從0改為1,表示3分出現過了一次

注意啦!第三個人的分數也是5分,所以a[5]的值需要在此基礎上再增加1,即將a[5]的值從1改為2,表示5分出現過了兩次

排序演算法 桶排序

桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...

排序演算法 桶排序

2009 12 02 12 01 2817人閱讀 桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均...

排序演算法 桶排序

桶排序 bucket sort 或所謂的箱排序的原理是將陣列分到有限數量的桶子裡,然後對每個桶子再分別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 最後將各個桶中的資料有序的合併起來。排序過程 假設待排序的一組數統一的分布在乙個範圍中,並將這一範圍劃分成幾個子範圍,也就是桶 ...