亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Javascript排序算法之計數(shù)排序的實例

 更新時間:2014年04月05日 10:10:33   作者:  
計數(shù)排序是一種高效的線性排序,它通過計算一個集合中元素楚翔的次數(shù)來確定集合如何排列,計數(shù)排序不需要進(jìn)行數(shù)據(jù)的比較,所有他的運(yùn)行效率前面介紹的都高

計數(shù)排序(Counting sort)是一種穩(wěn)定的排序算法。計數(shù)排序使用一個額外的數(shù)組Count_arr,其中第i個元素是待排序數(shù)組Arr中值等于i的元素的個數(shù)。然后根據(jù)數(shù)組Count_arr來將Arr中的元素排到正確的位置。
分為四個步驟:
1.找出待排序的數(shù)組中最大和最小的元素
2.統(tǒng)計數(shù)組中每個值為i的元素出現(xiàn)的次數(shù),存入數(shù)組Count_arr的第i項
3.對所有的計數(shù)累加(從Count_arr中的第一個元素開始,每一項和前一項相加)
4.反向遍歷原數(shù)組:將每個元素i放在新數(shù)組的第Count_arr(i)項,每放一個元素就將Count_arr(i)減去1

實例:

復(fù)制代碼 代碼如下:

/**
 * 計數(shù)排序是一個非基于比較的排序算法,
 * 該算法于1954年由 Harold H. Seward 提出。
 * 它的優(yōu)勢在于在對一定范圍內(nèi)的整數(shù)排序時,
 * 它的復(fù)雜度為Ο(n+k)(其中k是整數(shù)的范圍),
 * 快于任何比較排序算法。
 *
 */

function countSort(arr, min, max) {
    var i, z = 0, count = [];

    for (i = min; i <= max; i++) {
        count[i] = 0;
    }

    for (i=0; i < arr.length; i++) {
        count[arr[i]]++;
    }

    for (i = min; i <= max; i++) {
        while (count[i]-- > 0) {
            arr[z++] = i;
        }
    }
    return arr;
}

// test

var i, arr = [];

for (i = 0; i < 100; i++) {
    arr.push(Math.floor(Math.random() * (141)));
}

countSort(arr, 0, 140);

相關(guān)文章

  • js實現(xiàn)表單及時驗證功能 用戶信息立即驗證

    js實現(xiàn)表單及時驗證功能 用戶信息立即驗證

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)表單及時驗證功能,在輸入后就可以立即驗證,含用戶類型,性別,愛好等驗證,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Javascript 生成無限下拉列表實現(xiàn)代碼

    Javascript 生成無限下拉列表實現(xiàn)代碼

    js生成無線下拉列表的實現(xiàn)代碼。
    2009-03-03
  • javascript中setTimeout使用指南

    javascript中setTimeout使用指南

    本文給大家通過3個方法向大家展示了javascript中的setTimeout的使用,非常的簡單,有需要的小伙伴可以參考下。
    2015-07-07
  • 一文詳解Vue中插槽的具體使用

    一文詳解Vue中插槽的具體使用

    Vue的插槽(Slot)是一種可以讓父組件向子組件傳遞內(nèi)容的機(jī)制,這篇文章主要通過一些簡單的示例為大家介紹了插槽的具體使用,感興趣的小伙伴可以了解一下
    2023-06-06
  • 純javascript實現(xiàn)自動發(fā)送郵件

    純javascript實現(xiàn)自動發(fā)送郵件

    當(dāng)我們發(fā)送郵件時,可以自定義郵件發(fā)送的時間,那么使用代碼是如何實現(xiàn)的呢?下面通過本篇文章給大家介紹使用純javascript實現(xiàn)自動發(fā)送郵件,感興趣的朋友可以參考下
    2015-10-10
  • javascript移動的盒子效果代碼

    javascript移動的盒子效果代碼

    不錯的應(yīng)用,用方向鍵控制小方塊的移動
    2008-09-09
  • 妙用緩存調(diào)用鏈實現(xiàn)JS方法的重載

    妙用緩存調(diào)用鏈實現(xiàn)JS方法的重載

    方法重載是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數(shù)的類型或參數(shù)的個數(shù)。簡而言之就是:方法重載就是方法名稱重復(fù),加載參數(shù)不同
    2018-04-04
  • 仿京東快報向上滾動的實例

    仿京東快報向上滾動的實例

    下面小編就為大家分享一篇仿京東快報向上滾動的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 12種JavaScript常用的MVC框架比較分析

    12種JavaScript常用的MVC框架比較分析

    這篇文章主要介紹了12種JavaScript常用的MVC框架比較分析,以獨特的視角分析了12中常見的JavaScript MVC框架各種優(yōu)缺點,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • JS實現(xiàn)拖動滑塊驗證

    JS實現(xiàn)拖動滑塊驗證

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)拖動滑塊驗證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論