欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS使用隊(duì)列對數(shù)組排列,基數(shù)排序算法示例

 更新時(shí)間:2019年03月02日 08:58:47   作者:白楊-M  
這篇文章主要介紹了JS使用隊(duì)列對數(shù)組排列,基數(shù)排序算法,涉及javascript隊(duì)列的定義、使用,基數(shù)排序?qū)崿F(xiàn)方法等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JS使用隊(duì)列對數(shù)組排列,基數(shù)排序算法。分享給大家供大家參考,具體如下:

/*
* 使用隊(duì)列對數(shù)組排列,基數(shù)排序
*對于0~99的數(shù)字,基數(shù)排序?qū)?shù)組集掃描兩次。
* 第一次按個(gè)位上的數(shù)字進(jìn)行排序,
* 第二次按十位上的數(shù)字進(jìn)行排序
* */
function Queue(){
  this.dataStore = [];//存放隊(duì)列的數(shù)組,初始化為空
  this.enqueue = enqueue;//向隊(duì)列尾部添加一個(gè)元素
  this.dequeue = dequeue;//刪除隊(duì)首的元素
  this.theFront = theFront;//讀取隊(duì)首的元素
  this.back = back;//對取隊(duì)尾的元素
  this.toStrings = toStrings;//顯示隊(duì)列內(nèi)的所有元素
  this.empty = empty;//判斷隊(duì)列是否為空
}
function enqueue(element){
  this.dataStore.push(element);
}
function dequeue(){
  return this.dataStore.shift();
}
function theFront(){
  return this.dataStore[0];
}
function back(){
  return this.dataStore[this.dataStore.length-1];
}
function toStrings(){
  return this.dataStore;
}
function empty(){
  if(this.dataStore.length == 0){
    return true;
  }else{
    return false;
  }
}
/*基數(shù)排序
* nums :需要排序的數(shù)組
* queues :數(shù)組,里面元素是隊(duì)列
* n :隊(duì)列的格式,這里為10個(gè)
* digit :傳入1,則先按個(gè)位上的數(shù)字排序;傳入10,則按十位上的數(shù)字排序
 * */
function distribute(nums,queues,n,digit){
  for(var i = 0;i < n;i++){
    if(digit == 1){
      queues[nums[i]%10].enqueue(nums[i]);
    }else if(digit == 10){
      queues[Math.floor(nums[i]/10)].enqueue(nums[i]);
    }else{
    }
  }
}
function collect(queues,nums){
  var i = 0;
  for(var j = 0;j < 10;j++){
    while(!queues[j].empty()){
      nums[i++] = queues[j].dequeue();
    }
  }
}
/*測試程序*/
var queues = [];
for(var i = 0;i < 10;i++){
  queues[i] = new Queue();
}
var nums = [];
for(var i = 0;i < 10;i++){
  nums[i] = Math.floor(Math.random()*101);
}
console.log("開始的nums: "+nums);//24,72,90,84,49,69,8,30,50,0
distribute(nums,queues,10,1);
collect(queues,nums);
distribute(nums,queues,10,10);
collect(queues,nums);
console.log("排序后的nums: "+nums);//0,8,24,30,49,50,69,72,84,90

使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運(yùn)行結(jié)果:

PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:

在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JavaScript中reduce()的用法實(shí)例

    JavaScript中reduce()的用法實(shí)例

    reduce()方法接收一個(gè)函數(shù)作為累加器(accumulator),數(shù)組中的每個(gè)值(從左到右)開始縮減,最終為一個(gè)值,下面這篇文章主要給大家介紹了關(guān)于JavaScript中reduce()的用法實(shí)例,需要的朋友可以參考下
    2022-05-05
  • 在Html中使用Requirejs進(jìn)行模塊化開發(fā)實(shí)例詳解

    在Html中使用Requirejs進(jìn)行模塊化開發(fā)實(shí)例詳解

    在前端模塊化的時(shí)候,不僅僅是js需要進(jìn)行模塊化管理,html有時(shí)候也需要模塊化管理。這里就介紹下如何通過requirejs,實(shí)現(xiàn)html代碼的模塊化開發(fā)
    2016-04-04
  • layui按條件隱藏表格列的實(shí)例

    layui按條件隱藏表格列的實(shí)例

    今天小編就為大家分享一篇layui按條件隱藏表格列的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 分享JS四種好玩的黑客背景效果代碼

    分享JS四種好玩的黑客背景效果代碼

    大家好,本篇文章分享的是四種好玩的黑客背景效果JS代碼,感興趣的同學(xué)趕緊來試試吧,覺得還不錯的話記得收藏一下哦,方便下次瀏覽
    2021-11-11
  • bootstrap多層模態(tài)框滾動條消失的問題

    bootstrap多層模態(tài)框滾動條消失的問題

    本篇文章主要介紹了bootstrap多層模態(tài)框滾動條消失的問題,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • JavaScript的內(nèi)置對象Math和字符串詳解

    JavaScript的內(nèi)置對象Math和字符串詳解

    這篇文章主要為大家介紹了JavaScript的內(nèi)置對象Math和字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • JavaScript中的this/call/apply/bind的使用及區(qū)別

    JavaScript中的this/call/apply/bind的使用及區(qū)別

    這篇文章主要介紹了JavaScript中的this/call/apply/bind的使用及區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • JavaScript實(shí)現(xiàn)滑動導(dǎo)航欄效果

    JavaScript實(shí)現(xiàn)滑動導(dǎo)航欄效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)滑動導(dǎo)航欄效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • arcgis for js 修改infowindow樣式的方法

    arcgis for js 修改infowindow樣式的方法

    下面小編就為大家?guī)硪黄猘rcgis for js 修改infowindow樣式的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • zTree獲取當(dāng)前節(jié)點(diǎn)的下一級子節(jié)點(diǎn)數(shù)實(shí)例

    zTree獲取當(dāng)前節(jié)點(diǎn)的下一級子節(jié)點(diǎn)數(shù)實(shí)例

    下面小編就為大家?guī)硪黄獄Tree獲取當(dāng)前節(jié)點(diǎn)的下一級子節(jié)點(diǎn)數(shù)實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論