最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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錯(cuò)誤與調(diào)試技巧總結(jié)

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

相關(guān)文章

最新評論

西藏| 赞皇县| 保山市| 奉化市| 绥宁县| 左权县| 进贤县| 东丰县| 毕节市| 城固县| 浠水县| 青神县| 永昌县| 新宾| 屯门区| 永和县| 清水河县| 宁波市| 肥城市| 合阳县| 神池县| 金溪县| 上杭县| 海南省| 固原市| 博野县| 苗栗县| 德昌县| 都昌县| 汽车| 库车县| 平江县| 江都市| 任丘市| 青川县| 都昌县| 延边| 桃江县| 邯郸市| 东源县| 四会市|