有關桶排序的小運用

2021-08-30 09:07:42 字數 471 閱讀 3539

question

無序陣列進行排序後,求相鄰倆數間最大差值,要求時間複雜度o(n),非比較性?

thinking: 

sketch:n

個數,n

+1個桶,必有乙個空桶。在每個非空桶裡紀錄桶裡最大值和最小值,並用

bool

型別記錄是否為空桶,而最大差值產生於相鄰倆個非空桶之間。

detailed:

先將無序陣列排序,記錄陣列的0位和末位的值,如果相等就結束函式,建立乙個布林型別的陣列記錄所分桶是否為空,然後分別建立倆個陣列,分別記錄桶內的最小值和最大值,下一步就是將陣列內的數分給虛構的桶中,此過程具現化位記錄每個桶中的最大值和最小值,同時用布林型別的陣列記錄是否為空,最後一步很簡單,遍歷陣列中內嵌乙個判斷是否為空桶的if,在if中判斷差值是否為最大。

warning:

將陣列內的數分給到具體哪個桶裡,(陣列內的數-陣列最小值)*維度/(陣列最大值-陣列內的數)

桶排序的運用

給定乙個陣列,求如果排序之後,相鄰兩數的最大差值,要求時間複雜度o n 且要求不能用非基於比較的排序。思路 這種問題的就是要用到桶排序。先建立乙個n 1的桶,再把陣列中的數給放進去,這樣就會保證有乙個桶是空的,所以最大差值必然是不可能在桶內產生的。一定是中間有乙個空桶或者兩個相鄰桶來產生的。pack...

桶排序的應用

題目 在乙個無序陣列中,求取有序之後相鄰數差值最大的在乙個無序陣列中,求取有序之後相鄰數差值最大的 要求 時間複雜度為o n 且存在資料範圍特別大 即不允許使用桶排序 解法 只是借鑑了桶的概念,而並沒有使用桶排序來求取。這一次是取決於給定的陣列中的元素個數,過程如下 1 陣列的大小是n,需要準備n ...

python 桶的排序

在技術排序中,如果元素的範圍比較 比如 在1到1億之間 如何改造演算法 桶排序 bucket sort 首先將元素分在不同的桶中,在對每個桶中的元素排序 n 表示預設分成多少桶 乙個桶放 max num n 的數 var max num n 得0放到0號桶裡,得1放到1號桶裡 當max num 10...