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

面試題首頁 > 計數排序面試題

計數排序面試題

001什么是計數排序?

1)計數排序不是一個基于比較的排序算法。它是用一個數組來統計每種數字出現的次數,然后按照大小順序將其依次放回原數組。但是計數排序有一個很嚴重的問題,就是其只能對整數進行排序,一旦遇到字符串時,就無能為力了。

2 )算法圖解

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

第二步:創建一個計數數組count,數組長度是max值加1,其元素默認值都為0。

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

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

002計數排序的代碼實現?

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;
        }
    }
}    

目錄

主站蜘蛛池模板: 亚洲精品tv久久久久久久久久 | 精品久久久久久中文字幕女 | 久久狠狠第一麻豆婷婷天天 | 国产护士资源总站 | 成人精品国产亚洲欧洲 | 日日操夜夜操天天操 | 免费精品美女久久久久久久久久 | 九九视频网| 国产精品国产自线在线观看 | 中国一级特黄大片毛片 | 一区二区三区中文字幕 | 亚洲人成网站在线观看青青 | 国产一级毛片视频在线! | 国产高清一区二区三区 | 91精选视频 | 久久久久免费观看 | 国产一区二区在免费观看 | 性生活国产| 欧美激情伦妇在线观看 | 中文字幕免费在线播放 | 久久这里只精品国产99热8 | 羞羞的视频网站 | 深夜在线免费 | 国产爱久久久精品 | 免费观看四虎精品国产永久 | 奇米麻豆 | 尹人香蕉99久久综合网站 | 欧美色xxx| 久久婷婷色一区二区三区 | 亚州一二区 | 欧美狠狠干 | 亚洲日比视频 | 久久久久久尹人网香蕉 | 免费观看一级特黄三大片视频 | 五月久久亚洲七七综合中文网 | 擼擼色在线看观看免费 | 国产又黄又a又潮娇喘视频 国产又色又爽又黄又刺激18 | 午夜91| 久久亚洲精选 | 国产特黄一级毛片特黄 | 91在线视频免费 |