日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
這個排序這么酷,為什么知道的人很少?

有一種很神奇的排序,基數(shù)排序(Radix Sort),時間復(fù)雜度為O(n),今天花1分鐘,通過幾幅圖,爭取讓大家搞懂細(xì)節(jié)。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的荷塘網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

畫外音:居然還有時間復(fù)雜度為O(n)的排序算法?

不但有,其實還有很多。 舉個栗子:

假設(shè)待排序的數(shù)組arr={72, 11, 82, 32, 44, 13, 17, 95, 54, 28, 79, 56}

基數(shù)排序的兩個關(guān)鍵要點:

(1)基:被排序的元素的“個位”“十位”“百位”,暫且叫“基”,栗子中“基”的個數(shù)是2(個位和十位);畫外音:來自野史,大神可幫忙修正。

(2)桶:“基”的每一位,都有一個取值范圍,栗子中“基”的取值范圍是0-9共10種,所以需要10個桶(bucket),來存放被排序的元素;

基數(shù)排序的算法步驟為:

 
 
 
 
  1. FOR (每一個基) {
  2. //循環(huán)內(nèi),以某一個“基”為依據(jù)
  3. 第一步:遍歷數(shù)據(jù)集arr,將元素放入對應(yīng)的桶bucket
  4. 第二步:遍歷桶bucket,將元素放回數(shù)據(jù)集arr
  5. }

更具體的,對應(yīng)到上面的栗子,“基”有個位和十位,所以,F(xiàn)OR循環(huán)會執(zhí)行兩次。

第一次:以“個位”為依據(jù)。

畫外音:上圖中標(biāo)紅的部分,個位為“基”。

第一步:遍歷數(shù)據(jù)集arr,將元素放入對應(yīng)的桶bucket;

操作完成之后,各個桶會變成上面這個樣子,即:個位數(shù)相同的元素,會在同一個桶里。

第二步:遍歷桶bucket,將元素放回數(shù)據(jù)集arr;

畫外音:需要注意,先入桶的元素要先出桶。

操作完成之后,數(shù)據(jù)集會變成上面這個樣子,即:整體按照個位數(shù)排序了。

畫外音:個位數(shù)小的在前面,個位數(shù)大的在后面。

第二次:以“十位”為依據(jù)。

畫外音:上圖中標(biāo)紅的部分,十位為“基”。

第一步:依然遍歷數(shù)據(jù)集arr,將元素放入對應(yīng)的桶bucket;

操作完成之后,各個桶會變成上面這個樣子,即:十位數(shù)相同的元素,會在同一個桶里。

第二步:依然遍歷桶bucket,將元素放回數(shù)據(jù)集arr;

操作完成之后,數(shù)據(jù)集會變成上面這個樣子,即:整體按照十位數(shù)也排序了。

畫外音:十位數(shù)小的在前面,十位數(shù)大的在后面。

首次按照個位從小到大,第二次按照十位從小到大,即:排序結(jié)束。

神奇不神奇!!!

幾個小點:

(1)基的選取,可以先從個位開始,也可以先從十位開始,結(jié)果是一樣的;

(2)基數(shù)排序,是一種穩(wěn)定的排序;

(3)時間復(fù)雜度,可以認(rèn)為是線性的O(n); 希望這一分鐘,大家有收獲。

【本文為專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】


名稱欄目:這個排序這么酷,為什么知道的人很少?
網(wǎng)頁地址:http://m.5511xx.com/article/cdoiojh.html