999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

最快的內(nèi)部排序法—桶排序法

2018-12-21 11:16:38童小明
贏未來 2018年14期
關鍵詞:排序分配

童小明

摘要:排序方法非常重要,但是種類很多,現(xiàn)在最快的內(nèi)部排序方法是快速排序,但是本人仔細研究了桶式排序法,理論上它應該比快速排序法還要快,但實際應用中卻比快速排序慢一些,尤其是當數(shù)據(jù)量非常大時。于是本人改進了桶式排序法,并命名為桶排序法,非常簡單高效,時間復雜度也很低,是最快的內(nèi)部排序法。

關鍵詞:內(nèi)部排序時間復雜度空間復雜度快速排序桶排序

0. 引言

排序方法非常重要,但是種類很多,現(xiàn)在最快的內(nèi)部排序方法是快速排序,但是本人仔細研究了桶式排序法,理論上它應該比快速排序法還要快,但實際應用中卻比快速排序慢一些,尤其是當數(shù)據(jù)量非常大時。

于是本人改進了桶式排序法,并命名為桶排序法,非常簡單高效,時間復雜度也很低,是最快的內(nèi)部排序法。

中學高級教師,軟件編程和算法設計

1.桶式排序法

桶式排序過程示例。

問題(1)的解決:桶式排序法采用鏈接存儲,設置m個鏈隊列作為桶的存儲結構。

采用靜態(tài)鏈表作為鏈隊列和待排序記錄序列的存儲結構。

structNode{

intkey;//鍵值

intnext;//下一個鍵值在數(shù)組中的下標

};

structQueueNode{//定義靜態(tài)鏈隊列存儲桶

intfront;//隊頭指針

intrear;//隊尾指針

}

問題(2)的解決:分配操作即是將記錄插入到相應的隊列中,入隊在靜態(tài)鏈表上實現(xiàn),

并修改相應隊列的隊頭指針和隊尾指針。

//分配算法

//first為靜態(tài)鏈表的頭指針,從下標0開始存放待排序序列

voidDistribute(Noder[],intn,QueueNodeq[],intm,intfirst)

{

i=first;

while(r[i].next!=-1)//依次分配每一個待排序記錄

{

k=r[i].key;

if(q[k].front==-1)q[k].front=i;//處理隊列為空的情況

elser[q[k].rear].next=i;//在靜態(tài)鏈表中實現(xiàn)插入在隊列尾部

q[k].rear=i;//修改隊尾指針

i=r[i].next;//i后移,處理下一個記錄

}

}

桶式排序法的時間復雜度小,但是空間復雜度大,而且算法很復雜。

2.桶排序法

(1)如何表示桶?即如何存儲具有相同鍵值的記錄?

通過創(chuàng)建一個結構體的堆數(shù)組(隊列)來實現(xiàn),

structqueue{

intcount2;//重復元素的個數(shù)

queue(){count2=0;}

};

queue*Q;//隊列(待分配)

將每一個數(shù)對應到它的值所在隊列位置中。

比如,定義queueQ[10000];

表示最大的數(shù)是9999,最小的數(shù)是0。

(2)如何進行分配操作?

如果數(shù)是1000,則Q[1000].count2=1;

如果下一個數(shù)是1,則Q[1].count2=1;

對于一個新出現(xiàn)的數(shù),則隊列相應位置的計數(shù)為1。

如果遇到以前出現(xiàn)的數(shù),則相應位置的計數(shù)加1,

比如下一個數(shù)是1000,則

Q[1000].count2=2,

出現(xiàn)幾次,計數(shù)就累加1幾次,即count2表示該位置表示的數(shù)出現(xiàn)的次數(shù)。

2.1桶排序法使用的全部變量和結構體定義

structqueue{

intcount2;//重復元素的個數(shù)

queue(){count2=0;}

};

inta[450000001];

intn;

intmaxValue,minValue,base;//如果minValue<0,base=-minValue;否則base=0

queue*Q;//隊列(待分配)

2.2桶排序法的初始化

voidInit()

{

maxValue=-0x7f7f7f7f,minValue=-maxValue;

n=300000000;

for(inti=0;i

{

a[i]=n-i;//rand()+1000;

if(i%2==0)a[i]*=-1;

if(a[i]>maxValue)maxValue=a[i];

if(a[i]

}

//分配maxValue+base+1個桶

base=(minValue>=0)?0:-minValue;//保證下標>=0

try{

Q=newqueue[maxValue+base+1];

}

catch(constbad_alloc&e;)

{

cout<<"內(nèi)存分配錯誤!"<

exit(1);

猜你喜歡
排序分配
排排序
基于可行方向法的水下機器人推力分配
排序不等式
恐怖排序
應答器THR和TFFR分配及SIL等級探討
遺產(chǎn)的分配
一種分配十分不均的財富
節(jié)日排序
績效考核分配的實踐與思考
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
主站蜘蛛池模板: 午夜免费视频网站| 91亚洲精品国产自在现线| 国产日韩欧美一区二区三区在线 | 一级毛片网| 青青草久久伊人| aa级毛片毛片免费观看久| 综合人妻久久一区二区精品| 国产又黄又硬又粗| 国产SUV精品一区二区| 夜夜拍夜夜爽| 97国产在线观看| 啊嗯不日本网站| 一本大道无码日韩精品影视| 精品一区二区三区水蜜桃| a在线亚洲男人的天堂试看| 亚洲国语自产一区第二页| 欧美翘臀一区二区三区| 亚洲AV电影不卡在线观看| 久久黄色视频影| 亚洲成年网站在线观看| 九九热免费在线视频| 久久亚洲国产视频| 日日拍夜夜嗷嗷叫国产| 日韩无码视频专区| 99re在线免费视频| 精品無碼一區在線觀看 | 国产一级妓女av网站| 国产丝袜精品| 久久久久久久久久国产精品| 97国产在线视频| 大陆精大陆国产国语精品1024| 精品国产中文一级毛片在线看| 亚洲欧洲日产国码无码av喷潮| 欧美一区中文字幕| 国产日韩精品一区在线不卡| 亚洲天堂视频在线播放| 欧美日韩高清在线| 国产精品自在拍首页视频8| 亚洲美女视频一区| 精品国产黑色丝袜高跟鞋| 在线观看亚洲人成网站| 欧美在线天堂| 欧美激情视频二区| 亚洲最新在线| 伊人色在线视频| 在线网站18禁| 欧美一级大片在线观看| 国产理论最新国产精品视频| 亚洲伊人久久精品影院| 久久精品国产电影| 国产精品入口麻豆| 亚洲无码熟妇人妻AV在线| 欧美成人午夜在线全部免费| 538精品在线观看| 成人无码区免费视频网站蜜臀| 国产在线一二三区| 亚洲无码视频图片| 亚洲精品成人片在线播放| 亚洲AV一二三区无码AV蜜桃| 成人欧美在线观看| 亚洲高清在线天堂精品| 国产成人1024精品| 精品色综合| 99re热精品视频国产免费| av一区二区三区高清久久| 亚洲精品成人片在线观看| 欧美伦理一区| 国产日韩精品一区在线不卡| 亚洲人成日本在线观看| 国产在线第二页| 在线亚洲精品自拍| 久久77777| 国产女人18水真多毛片18精品| 精品久久香蕉国产线看观看gif| 免费jizz在线播放| 国产精品性| 午夜视频免费一区二区在线看| 欧美日韩在线第一页| av色爱 天堂网| 久久综合亚洲鲁鲁九月天| 色综合网址| 国产伦精品一区二区三区视频优播 |