91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基數(shù)排序是怎么排的_基數(shù)排序詳細(xì)過(guò)程

lhl545545 ? 來(lái)源:電子發(fā)燒友網(wǎng) ? 2018-02-05 14:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

計(jì)數(shù)排序

學(xué)習(xí)基數(shù)排序之前首先學(xué)習(xí)計(jì)數(shù)排序。

計(jì)數(shù)排序假設(shè)每個(gè)元素都是在0到k之間的一個(gè)整數(shù)。

基數(shù)排序的基本思想,對(duì)于每個(gè)元素x,如果我們知道了小于x的元素的個(gè)數(shù),就可以確定輸出數(shù)組中元素x的位置,那么直接將元素x放到輸出數(shù)組中。比如有3小于x的元素,那在輸出數(shù)組中,x肯定位于第4個(gè)位置。

計(jì)數(shù)排序的算法用偽代碼描述為:

COUNTING-SORT(A,k)

// 初始化數(shù)組C

for i=0 to k

C[i]=0

// 統(tǒng)計(jì)A[j]元素出現(xiàn)的次數(shù),保存到C數(shù)組中

for j=0 to A.length

C[A[j]]=C[A[j]]+1

// 統(tǒng)計(jì)小于等于A[j]元素的個(gè)數(shù)

for k=0 to k

C[K]=C[K-1]+C[K]

// 將A中的元素放在B中正確的位置

for i=A.length to 0

B[C[A[i]]-1]=A[i]

C[A[i]]=C[A[i]]-1

注:由于有可能有相同元素存在,所以,每次將A[i]元素放入B數(shù)組中,都要將C[A[j]]的值減一,這樣當(dāng)遇到下一個(gè)值等于A[j]的元素時(shí),該元素就能放在輸出數(shù)組中A[j]的前面。

計(jì)數(shù)排序的詳細(xì)過(guò)程如下

基數(shù)排序是怎么排的_基數(shù)排序詳細(xì)過(guò)程

計(jì)數(shù)排序的關(guān)鍵代碼如下

public int[] countSort(int a[], int k) {

int[] b = new int[a.length];

int[] c = new int[k];

for (int i = 0; i

c[i] = 0;

}

for (int i = 0; i

c[a[i]] += 1;

}

for (int i = 0; i

if (i != 0) {

c[i] += c[i - 1];

}

}

for (int i = a.length - 1; i >= 0; i--) {

b[c[a[i]] - 1] = a[i];

c[a[i]] = c[a[i]] - 1;

}

return b;

}

計(jì)數(shù)排序的性能

很容易得到計(jì)數(shù)排序的時(shí)間復(fù)雜度為:T(n)=O(k+n),因此當(dāng)k小于等于n,也就是當(dāng)k=O(n),k和n同階時(shí),采用計(jì)數(shù)排序的時(shí)間復(fù)雜度為T(mén)(n)=O(n)

同時(shí),計(jì)數(shù)排序也是一種穩(wěn)定的排序算法。

基數(shù)排序

基數(shù)排序最初是用在打孔卡片制表機(jī)上的一種排序算法,由Herman Hollerith發(fā)明,也就是IBM的創(chuàng)始人。

基數(shù)排序從最低為開(kāi)始來(lái)排序的,從低位到高位,按位排序,按位排序必須是穩(wěn)定的。

基數(shù)排序的詳細(xì)過(guò)程

基數(shù)排序是怎么排的_基數(shù)排序詳細(xì)過(guò)程

基數(shù)排序算法描述

RADIX-SORT(A,d)

for i=1 to d

use a stable sort to sort arrat A on digit i

在這里我們選擇計(jì)數(shù)排序。考慮常規(guī)情況,對(duì)[0.。.9]之間的數(shù)排序,k=10,且一般有k<

基數(shù)排序的關(guān)鍵代碼,這里以數(shù)組排序時(shí)按照十進(jìn)制每位進(jìn)行比較。

/**

* 基數(shù)排序

* @param result 最終已排序的數(shù)組,共用一個(gè)節(jié)省空間

* @param maxLen 待排序的數(shù)組中最大的位數(shù)

*/

public static void radixSort(int[] a,int[] result, int maxLen) {

int flag = 1;

// 保存每輪要排序的位對(duì)應(yīng)數(shù)組a的值

int [] digitArr = new int[a.length];

for(int i=0; i

// 共比較的輪數(shù)

flag *= 10;

// b數(shù)組中對(duì)應(yīng)的裝著a數(shù)組中每位的數(shù),第一輪裝著各位,第二輪裝著十位數(shù)。。.

for (int j = 0; j < digitArr.length; j++) {

digitArr[j]=a[j]%flag;

digitArr[j]=digitArr[j]/(flag/10);

}

countSort(a, digitArr,result,10);

// 每一輪計(jì)數(shù)排序完后刷新下一輪要排序的數(shù)組

System.arraycopy(result, 0, a, 0,result.length);

}

}

調(diào)用計(jì)數(shù)排序的函數(shù)

/**

* 計(jì)數(shù)排序 :對(duì)數(shù)組a中的元素按某些位排序

* @param tmp 要參與排序的當(dāng)前位的值保存在tmp中

* @param result 每次計(jì)數(shù)排序后的新的數(shù)組順序

*/

public static void countSort(int a[], int tmp[], int result[], int k) {

int[] c = new int[k];

for (int i = 0; i < c.length; i++) {

c[i] = 0;

}

for (int i = 0; i

c[tmp[i]] += 1;

}

for (int i = 0; i < c.length; i++) {

if (i != 0) {

c[i] += c[i - 1];

}

}

for (int i = tmp.length - 1; i >= 0; i--) {

// 和計(jì)數(shù)排序唯一的差別在于賦值的時(shí)候用真實(shí)的數(shù)據(jù)

result[c[tmp[i]] - 1] = a[i];

c[tmp[i]] = c[tmp[i]] - 1;

}

}

基數(shù)排序的性能

如果基數(shù)排序使用的穩(wěn)定排序算法的時(shí)間復(fù)雜度為O(n+k),那么基數(shù)排序的時(shí)間復(fù)雜度為T(mén)(n)=O(d(n+k))

很容易理解要循環(huán)d輪,每輪耗時(shí)為O(n+k),于是總的耗時(shí)為O(d(n+k))

在此基礎(chǔ)上,從2^r進(jìn)制來(lái)看,此時(shí)k為2^r,并且一個(gè)b位數(shù)要比較b/r輪。于是我們得到T(n)=O((b/r)(n+2^r))

對(duì)上式求導(dǎo)可得其最小值。此時(shí)r=lgn,此時(shí)T(n)=O((b/lgn)n),如果再取b=lgn,這時(shí)就能達(dá)到最少的運(yùn)行時(shí)間,時(shí)間復(fù)雜度為T(mén)(n)=O(n)

基數(shù)排序也是穩(wěn)定的排序算法

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    國(guó)際首創(chuàng)新突破!中國(guó)團(tuán)隊(duì)以存算一體排序架構(gòu)攻克智能硬件加速難題

    2025 年 6 月 25 日,北京大學(xué)團(tuán)隊(duì)在智能計(jì)算硬件方面取得領(lǐng)先突破,國(guó)際上首次實(shí)現(xiàn)了基于存算一體技術(shù)的高效排序硬件架構(gòu) (A fast and reconfigurable
    的頭像 發(fā)表于 07-02 16:50 ?190次閱讀
    國(guó)際首創(chuàng)新突破!中國(guó)團(tuán)隊(duì)以存算一體<b class='flag-5'>排序</b>架構(gòu)攻克智能硬件加速難題

    Analog Devices Inc. MAX16895 監(jiān)控電路特性/應(yīng)用/功能圖

    Analog Devices MAX16895監(jiān)控電路是小型、低功耗、電壓監(jiān)控電路,具有排序功能。這些器件具有可調(diào)的、低至0.5V的電壓監(jiān)控閾值,并可利用外部電容調(diào)節(jié)延遲時(shí)間。這些Analog Devices器件非常適合用于電源排序、復(fù)位
    的頭像 發(fā)表于 06-26 09:34 ?115次閱讀
    Analog Devices Inc. MAX16895 監(jiān)控電路特性/應(yīng)用/功能圖

    低成本電源排序器解決方案

    絕大多數(shù)負(fù)載點(diǎn)DC-DC轉(zhuǎn)換器可以將上一個(gè)轉(zhuǎn)換器的電源就緒輸出連接至下一個(gè)轉(zhuǎn)換器的使能輸入,實(shí)現(xiàn)上電排序。這種方法只適合比較簡(jiǎn)單的設(shè)計(jì),不能滿足多數(shù)現(xiàn)代微處理器和DSP的要求一這類器件要求斷電順序必須與上電順序相反。許多廠商針對(duì)這類應(yīng)用推出了可編程排序IC,但器件價(jià)格較為
    的頭像 發(fā)表于 05-21 09:55 ?520次閱讀
    低成本電源<b class='flag-5'>排序</b>器解決方案

    基數(shù)字鑰匙平臺(tái)正式上線

    領(lǐng)先的汽車智能化解決方案供應(yīng)商上海銀基科技股份有限公司正式宣布,旗下支持Apple錢(qián)包中的數(shù)字車鑰匙接入的銀基數(shù)字鑰匙平臺(tái)正式上線,該平臺(tái)全面適配CCC國(guó)際標(biāo)準(zhǔn),標(biāo)志著數(shù)字鑰匙全球化部署進(jìn)程取得重要進(jìn)展。
    的頭像 發(fā)表于 02-28 13:47 ?529次閱讀

    詳解Linux sort命令之掌握排序技巧與實(shí)用案例

    在linux系統(tǒng)使用過(guò)程中,提供了sort排序命令,支持常用的排序功能。 常用參數(shù) sort命令支持很多參數(shù),常用參數(shù)如下: ? 短參數(shù) 長(zhǎng)參數(shù) 說(shuō)明 -n – number-sort 按字符串?dāng)?shù)值
    的頭像 發(fā)表于 01-09 10:10 ?917次閱讀

    Phase Lab鎳基數(shù)據(jù)庫(kù),輔助開(kāi)發(fā)Ni-AI-Cr-X系高溫合金

    Phase Lab? 鎳基數(shù)據(jù)庫(kù) 輔助開(kāi)發(fā)Ni-AI-Cr-X系高溫合金 Ni-Al-Cr-X四元系(X=Mo、Ti和W),基于γ基體相(FCC_A1結(jié)構(gòu))與γ'有序相(FCC_L12結(jié)構(gòu)
    的頭像 發(fā)表于 01-08 11:29 ?766次閱讀
    Phase Lab鎳<b class='flag-5'>基數(shù)</b>據(jù)庫(kù),輔助開(kāi)發(fā)Ni-AI-Cr-X系高溫合金

    TimSort:一個(gè)在標(biāo)準(zhǔn)函數(shù)庫(kù)中廣泛使用的排序算法

    在計(jì)算機(jī)科學(xué)的領(lǐng)域,排序算法是每位學(xué)生必學(xué)的基礎(chǔ),而排序的需求是每位程序員在編程過(guò)程中都會(huì)遇到的。 在你輕松調(diào)用 .sort() 方法對(duì)數(shù)據(jù)進(jìn)行排序時(shí),是否曾好奇過(guò),這個(gè)簡(jiǎn)單的方法背后
    的頭像 發(fā)表于 01-03 11:42 ?565次閱讀

    Phase Lab鎳基數(shù)據(jù)庫(kù),驅(qū)動(dòng)高性能Ni-AI-Co-Cr系合金設(shè)計(jì)

    Phase Lab? 鎳基數(shù)據(jù)庫(kù) 驅(qū)動(dòng)高性能Ni-AI-Co-Cr系合金設(shè)計(jì) 鎳基合金以優(yōu)異的高溫強(qiáng)度、耐蝕和耐磨等性能,廣泛應(yīng)用于航空發(fā)動(dòng)機(jī)、燃?xì)廨啓C(jī)等高溫工作部件以及化工、醫(yī)療和海洋工程等腐蝕性
    的頭像 發(fā)表于 12-31 10:12 ?644次閱讀
    Phase Lab鎳<b class='flag-5'>基數(shù)</b>據(jù)庫(kù),驅(qū)動(dòng)高性能Ni-AI-Co-Cr系合金設(shè)計(jì)

    在TMS320C62x上實(shí)現(xiàn)的擴(kuò)展精度基數(shù)-4快速傅里葉變換

    電子發(fā)燒友網(wǎng)站提供《在TMS320C62x上實(shí)現(xiàn)的擴(kuò)展精度基數(shù)-4快速傅里葉變換.pdf》資料免費(fèi)下載
    發(fā)表于 10-28 10:03 ?0次下載
    在TMS320C62x上實(shí)現(xiàn)的擴(kuò)展精度<b class='flag-5'>基數(shù)</b>-4快速傅里葉變換

    時(shí)間復(fù)雜度為 O(n^2) 的排序算法

    作者:京東保險(xiǎn) 王奕龍 對(duì)于小規(guī)模數(shù)據(jù),我們可以選用時(shí)間復(fù)雜度為 O(n2) 的排序算法。因?yàn)闀r(shí)間復(fù)雜度并不代表實(shí)際代碼的執(zhí)行時(shí)間,它省去了低階、系數(shù)和常數(shù),僅代表的增長(zhǎng)趨勢(shì),所以在小規(guī)模數(shù)據(jù)情況下
    的頭像 發(fā)表于 10-19 16:31 ?1729次閱讀
    時(shí)間復(fù)雜度為 O(n^2) 的<b class='flag-5'>排序</b>算法

    TPS54120排序和跟蹤

    電子發(fā)燒友網(wǎng)站提供《TPS54120排序和跟蹤.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 10:54 ?0次下載
    TPS54120<b class='flag-5'>排序</b>和跟蹤

    CyU3PDmaMultiChannelCommitBuffer失敗后,如何重置?

    進(jìn)行緩沖)。 定制 描述符區(qū)域 基數(shù):0x40000000 大小:12 KB 代碼區(qū)基數(shù):0x40003000 大小: 134 KB 數(shù)據(jù)區(qū)基:0x40024800 大小: 32 KB 驅(qū)動(dòng)程序堆基
    發(fā)表于 09-27 08:37

    安達(dá)發(fā)|APS高級(jí)程高級(jí)物料需求計(jì)劃

    APS高級(jí)程高級(jí)物料需求計(jì)劃是在制造業(yè)中非常重要的概念。它們分別涉及到生產(chǎn)計(jì)劃和物料管理,對(duì)于提高生產(chǎn)效率、降低成本和滿足客戶需求具有重要意義。下面我將詳細(xì)介紹這兩個(gè)概念及其在實(shí)際生產(chǎn)
    的頭像 發(fā)表于 09-25 17:49 ?623次閱讀
    安達(dá)發(fā)|APS高級(jí)<b class='flag-5'>排</b>程高級(jí)物料需求計(jì)劃

    端子的布置原則介紹

    端子作為電氣控制系統(tǒng)中不可或缺的組成部分,其設(shè)計(jì)要求精確嚴(yán)謹(jǐn),以確保系統(tǒng)的安全穩(wěn)定運(yùn)行。從材料選擇到結(jié)構(gòu)布局,再到編號(hào)規(guī)則,每一個(gè)細(xì)節(jié)都關(guān)系到電氣控制系統(tǒng)的整體性能。下面詳細(xì)探討端子的設(shè)計(jì)要求
    的頭像 發(fā)表于 08-28 10:33 ?2371次閱讀

    CyU3PDmaMultiChannelCommitBuffer失敗后,如何使重置速度更快?

    區(qū)域進(jìn)行緩沖)。 定制 描述符區(qū)域 基數(shù):0x40000000 大小:12 KB 代碼區(qū)基數(shù):0x40003000 大小: 134 KB 數(shù)據(jù)區(qū)基:0x40024800 大小: 32 KB
    發(fā)表于 07-23 08:29
    主站蜘蛛池模板: 又黄又爽的成人免费网站 | 国产美女流出白浆在线观看 | 涩综合| 日韩第二页 | 99久久精品免费观看国产 | 精品欧美一区二区三区在线观看 | 天天爽夜夜爽人人爽一区二区 | 欧美日韩高清一区 | 国产午夜久久精品 | 日本三级理论片 | 亚洲一区二区三区影院 | 一级一片免费视频播放 | 欧美激情亚洲色图 | 久久亚洲精品成人综合 | 天天天天做夜夜夜夜做 | 久久天天躁狠狠躁夜夜免费观看 | 国产黄色在线 | xxxx.欧美| 免费的男女拍拍拍的视频 | 成人看的一级毛片 | a黄色网| 成人羞羞视频国产 | 老师叫我下面含着精子去上课 | 韩国三级日本三级在线观看 | 国产高清视频免费最新在线 | 午夜免费福利片观看 | 亚洲另类激情综合偷自拍 | 欧美亚洲h在线一区二区 | 欧美社区 | 丁香六月激情婷婷 | xxxxbbbb欧美| 欧洲精品不卡1卡2卡三卡四卡 | 2017天天干夜夜操 | 真实偷清晰对白在线视频 | 美女一级a毛片免费观看 | 在线观看色视频 | 国产美女视频黄a视频免费全过程 | 一区二区高清在线 | 午夜久久久久久 | 亚洲一区二区影视 | 日韩欧美卡通动漫在线观看 |