大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

面試題首頁(yè) > 計(jì)數(shù)排序面試題

計(jì)數(shù)排序面試題

001什么是計(jì)數(shù)排序?

1)計(jì)數(shù)排序不是一個(gè)基于比較的排序算法。它是用一個(gè)數(shù)組來(lái)統(tǒng)計(jì)每種數(shù)字出現(xiàn)的次數(shù),然后按照大小順序?qū)⑵湟来畏呕卦瓟?shù)組。但是計(jì)數(shù)排序有一個(gè)很嚴(yán)重的問(wèn)題,就是其只能對(duì)整數(shù)進(jìn)行排序,一旦遇到字符串時(shí),就無(wú)能為力了。

2 )算法圖解

第一步:找出原始數(shù)組【0,2,5,3,7,9,10,3,7,6】中元素值最大的,記為max=10。

第二步:創(chuàng)建一個(gè)計(jì)數(shù)數(shù)組count,數(shù)組長(zhǎng)度是max值加1,其元素默認(rèn)值都為0。

第三步:遍歷原始數(shù)組中的元素,以原始數(shù)組中的元素作為計(jì)數(shù)數(shù)組count的索引,以原始數(shù)組中的元素出現(xiàn)次數(shù)作為計(jì)數(shù)數(shù)組count的元素值。下圖可以得到原始數(shù)組【0,2,5,3,7,9,10,3,7,6】中元素0出現(xiàn)1次,元素2出現(xiàn)1次,元素3出現(xiàn)2次,元素5出現(xiàn)1次,元素6出現(xiàn)1次,元素7出現(xiàn)2次,元素9出現(xiàn)1次,元素10出現(xiàn)1次。

第四步:遍歷計(jì)數(shù)數(shù)組count,找出其中元素值大于0的元素,將其對(duì)應(yīng)的索引作為元素值填充到結(jié)果數(shù)組result中去,每處理一次,計(jì)數(shù)數(shù)組count中的該元素值減1,直到該元素值不大于0,依次處理計(jì)數(shù)數(shù)組count中剩下的元素。

002計(jì)數(shù)排序的代碼實(shí)現(xiàn)?

public static void countSort(int[] arr) {
    if (arr == null || arr.length < 2) {
        return;
    }
    int max = Integer.MIN_VALUE;
    for (int i = 0; i < arr.length; i++) {
        max = Math.max(max, arr[i]);
    }
    int[] bucket = new int[max + 1];
    for (int i = 0; i < arr.length; i++) {
        bucket[arr[i]]++;
    }
    int i = 0;
    for (int j = 0; j < bucket.length; j++) {
        while (bucket[j]-- > 0) {
            arr[i++] = j;
        }
    }
}    

目錄

返回頂部
主站蜘蛛池模板: 天天舔天天干 | 国产第一福利影院 | 久久成人精品免费播放 | 天天干天天操天天舔 | 成人亚洲性情网站www在线观看 | 奇米影视在线 | 日本一级在线播放线观看视频 | 国产精品一区二区三区四区 | 国产无套免费网站 | 伊人色婷婷综在合线亚洲 | 国产一区二区久久精品 | 亚洲欧美日韩高清中文在线 | 热久久这里只有精品 | 综合欧美日韩 | 99久久网站 | 成人禁在线观看午夜亚洲 | 日韩中文字幕视频在线 | 99国产高清久久久久久网站 | 亚州欧美 | 7799国产精品久久久久99 | 日本一区二区三区欧美在线观看 | 天天操天天舔天天射 | 欧美日韩国产一区二区三区欧 | 国产99区| 欧美视频一区二区 | 免费观看午夜在线欧差毛片 | 四虎看片 | 久久新网址 | 欧美日本激情 | 一区二区三区四区日韩 | 精品香蕉99久久久久网站 | 国内精品日本久久久久影院 | 国产免费一区二区三区在线 | 欧美激情一区二区三级高清视频 | 日本一级毛片高清免费观看视频 | 免费一级毛片视频 | 欧美 日韩 中字 国产 | 中国美女牲交一级毛片 | 亚洲精品国产国语 | 四虎影视成人永久在线播放 | 97影院官网 |