您好,登錄后才能下訂單哦!
今天小編給大家分享的是使用PHP實(shí)現(xiàn)簡(jiǎn)單的桶排序原理,相信很多人都不太了解,為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。
簡(jiǎn)單意義上的桶排序:
● 桶排序的原理是先安排N+1個(gè)桶作為容器,若數(shù)據(jù)范圍為N的話。
● 然后將測(cè)試數(shù)據(jù)(所需排序的數(shù)據(jù))進(jìn)行循環(huán),放入對(duì)應(yīng)的桶內(nèi)。數(shù)據(jù)一定是在范圍N內(nèi)的。
● 最后,循環(huán)桶里的元素,并且輸出,進(jìn)行從大到小或從小到大的排序。
例如:
● 我們的取值范圍是10,那么就要定義一個(gè) 11長(zhǎng)度的數(shù)組$arr. 并且讓所有的元素值都為0
● 然后,對(duì)需要排序的數(shù)組進(jìn)行循環(huán) 如5,3,5,2,8.
● 將數(shù)據(jù)依次對(duì)應(yīng)$arr桶數(shù)組內(nèi)元素,即 如果是5,則使$arr[5]++.
● 這時(shí)候 $arr[2]=1 $arr[3]=1 $arr[5]=2 $arr[8]=1
● 然后循環(huán)$arr的數(shù)組,若$arr[2]=1,則循環(huán)輸出元素2一次,$arr[5]=2,則循環(huán)輸出5兩次
● 結(jié)果輸出即為 2 3 5 5 8
● 如果循環(huán)數(shù)值是從大到小 則會(huì)是從大到小的排序
<?php //設(shè)置默認(rèn)數(shù)組,默認(rèn)值為0; $arr = array(); for ($i = 0; $i <= 10; $i++) { $arr[$i] = 0; } //設(shè)置測(cè)試的五個(gè)數(shù)據(jù) $arr1 = array(5, 3, 5, 2, 8); //根據(jù)數(shù)據(jù) 對(duì)默認(rèn)數(shù)組的對(duì)應(yīng)元素進(jìn)行+1; J的取值范圍不能等于$arr1數(shù)組長(zhǎng)度 for ($j = 0; $j < count($arr1); $j++) { //這邊給相應(yīng)的數(shù)組值+1 $arr[$arr1[$j]]++; } //開始循環(huán)輸出 默認(rèn)數(shù)組 $arr 里面相應(yīng)的值 for ($k = 0; $k <= 10; $k++) { for ($l=1; $l <=$arr[$k]; $l++) { echo "$k </n>"; } } ?>
缺點(diǎn):
● 浪費(fèi)空間.
● 無(wú)法進(jìn)行浮點(diǎn)數(shù)據(jù)的排序.
關(guān)于使用PHP實(shí)現(xiàn)簡(jiǎn)單的桶排序原理就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。