国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

十大經(jīng)典排序算法:桶排序-學(xué)到牛牛

2022-04-26 09:09 作者:四川學(xué)到牛科技  | 我要投稿

現(xiàn)有一串待排序的數(shù)字,求如何用最快的方式進(jìn)行升序排序?

看到這個(gè)問題,是不是有很多同學(xué)第一反應(yīng)是使用快速排序、插入排序,其實(shí)在一些特殊情況下還有一種比快速排序更快的排序——桶排序。

我們首先來看一下百度百科對桶排序的解釋:

“ 桶排序 (Bucket sort)或所謂的箱排序,是一個(gè)排序算法,工作的原理是將數(shù)組分到有限數(shù)量的桶子里。每個(gè)桶子再個(gè)別排序(有可能再使用別的排序算法或是以遞歸方式繼續(xù)使用桶排序進(jìn)行排序)。桶排序是鴿巢排序的一種歸納結(jié)果。當(dāng)要被排序的數(shù)組內(nèi)的數(shù)值是均勻分配的時(shí)候,桶排序使用線性時(shí)間(Θ(n))。但桶排序并不是 比較排序,他不受到 O(n log n) 下限的影響?!?/p>

其實(shí)桶排序從字面意思上就很好理解,首先肯定和桶是離不開關(guān)系的,分成若干個(gè)桶,每個(gè)桶對應(yīng)不同的區(qū)間,把待排序的數(shù)字分別放入相應(yīng)的桶里面,每個(gè)桶里面的數(shù)字在進(jìn)行一次排序(排序方式自己決定),排序結(jié)束后,再依次把每個(gè)桶的數(shù)字打印出來,桶排序就完成了。

詳細(xì)步驟:

一、列出待排序的數(shù)字(如圖1-1)

圖1-1

二、確定桶的個(gè)數(shù)及桶的取值范圍(如圖1-2)

圖1-2

三、遍歷待排序的數(shù)組,將每一個(gè)元素依次放入對應(yīng)取值范圍的桶里面

圖1-3

四、對每一個(gè)桶里面的元素進(jìn)行排序(可任意選擇一種排序)

圖1-4

五、將每個(gè)桶中的元素按照順序賦值到原始數(shù)組中,完成本次排序(如圖1-5)

圖1-5

代碼實(shí)現(xiàn):

#include <stdio.h>

void main()

{

? ? ?int a[11],i,j,t;

? ? ?for(i=0;i<=10;i++)

? ? {

? ? ? ? ? ? a[i]=0;? ? //初始化為0

? ? ?}

? ? ?for(i=0;i<5;i++)? ? //循環(huán)讀入5個(gè)數(shù)

? ? ?{

? ? ? ? ? ? scanf("%d",&t);? ?//把每一個(gè)數(shù)讀到變量t中

? ? ? ? ? ? a[t]++;? ? //進(jìn)行計(jì)數(shù)

? ? ?}

? ? ?for(i=0;i<=10;i++)? ? //依次判斷a[0]~a[10]

? ? ?{? ?

? ? ? ? ? ? for(j=0;j<a[i];j++)? ? ?//出現(xiàn)了幾次就打印幾次

? ? ? ? ? ? {? ?

? ? ? ? ? ? ? ? printf("%d",i);

? ? ? ? ? ? }? ?

? ? ?}

}

文章來源,學(xué)到牛牛 www.xuedaon.com

十大經(jīng)典排序算法:桶排序-學(xué)到牛牛的評論 (共 條)

分享到微博請遵守國家法律
博白县| 金华市| 峨边| 柏乡县| 山丹县| 九江市| 康马县| 当涂县| 岚皋县| 宜阳县| 睢宁县| 潮安县| 文登市| 宜川县| 新邵县| 横峰县| 沧源| 井陉县| 湟源县| 兴业县| 玉门市| 咸阳市| 依兰县| 利川市| 萨迦县| 汽车| 离岛区| 安阳市| 西昌市| 临沧市| 龙胜| 进贤县| 抚顺市| 昂仁县| 庆阳市| 集安市| 水富县| 冷水江市| 中方县| 珲春市| 丹寨县|