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

JS排序方法(sort,bubble,select,insert)代碼匯總

 更新時(shí)間:2016年01月30日 17:04:06   投稿:hebedich  
新技術(shù)一直在不斷變化,掌握一些基礎(chǔ)是未來學(xué)習(xí)不斷更新的技術(shù)的堅(jiān)實(shí)基礎(chǔ)。近來閑來無事,為了溫習(xí)一下從前學(xué)的數(shù)據(jù)結(jié)構(gòu),將數(shù)據(jù)結(jié)構(gòu)中的排序算法用JS實(shí)現(xiàn)了一遍,

最近開始學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)。

一點(diǎn)一點(diǎn)整理,希望能堅(jiān)持下來。

因?yàn)榉较蚴乔岸?,所以用JavaScript實(shí)現(xiàn)。

//sort排序
var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
var testArr2=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
var testArr3=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
testArr1.sort();//排序結(jié)果:[15, 19, 2, 26, 27, 3, 36, 38, 4, 44, 46, 47, 48, 5, 50]
testArr2.sort(function(a,b){return a>b});//排序結(jié)果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
testArr3.sort(function(a,b){return a-b});//排序結(jié)果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]

//Bubble排序

var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
var testArr2=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
function bubbleSort1(array){
  for(i=array.length-1;i>0;i--){
    for(j=0;j<i;j++){
      if(array[j+1]<array[j]){
        var temp=array[j+1];
        array[j+1]=array[j];
        array[j]=temp;
      }
    }
  }
}
function bubbleSort2(array){
  for(i=array.length-1;i>0;i--){
    for(j=0;j<i;j++){
      if((array[j+1]-array[j])<0){
        var temp=array[j+1];
        array[j+1]=array[j];
        array[j]=temp;
      }
    }
  }
}
bubbleSort1(testArr1);//排序結(jié)果:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]
bubbleSort2(testArr2);//排序結(jié)果:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]

//Select排序

var testArr=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
function selectSort(array){
  for(i=0;i<array.length;i++){
     var slc=array[i];//初始時(shí)設(shè)未排序的第一個(gè)值為選中值
     var slcIdx;//記錄一次循環(huán)后作為選中值的index
     for(j=i;j<array.length;j++){  
      if(array[j]<slc){
       slc=array[j];
       slcIdx=j; 
      }
     }
   if(slc!=test[i]){//如果最后作為選中值的值和初始slc值不相等
    var temp=array[i];
    array[i]=array[slcIdx];
    array[slcIdx]=temp;
   }
  }
}
selectSort(testArr);//排序結(jié)果是:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]

//Insert排序

var testArr=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
function insertSort(array){
  for (var i = 0 ; i < array.length-1; i++) {//注意i小于數(shù)組的長(zhǎng)度-1,否則會(huì)造成數(shù)組越界,形成死循環(huán)
    var curElement=array[i+1];
    for (var j = i; j >= 0; j--) {
      if(curElement<array[j]){
        array[j+1]=array[j];
        if(j==0){//當(dāng)j==0時(shí),說明已經(jīng)排到了數(shù)組的最開頭
          array[0]=curElement;
        }
      }else{
        array[j+1]=curElement;
         break;
      }
    };
  };
}
 insertSort(testArr);//排序結(jié)果是:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]

相關(guān)文章

  • javascript的BOM

    javascript的BOM

    BOM是瀏覽器的窗口對(duì)象,提供了很多窗口處理的API。在webapp框架越來越多的情況下,需要我們?cè)谕淮翱谔幚聿煌?yè)面、不同的ajax數(shù)據(jù),則需要我們熟悉BOM的內(nèi)容。
    2016-05-05
  • 淺談javascript中new操作符的原理

    淺談javascript中new操作符的原理

    下面小編就為大家?guī)硪黄獪\談javascript中new操作符的原理。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • JavaScript學(xué)習(xí)筆記之Function對(duì)象

    JavaScript學(xué)習(xí)筆記之Function對(duì)象

    這篇文章主要介紹了JavaScript學(xué)習(xí)筆記之Function對(duì)象的相關(guān)資料,需要的朋友可以參考下
    2015-01-01
  • 21個(gè)JavaScript事件(Events)屬性匯總

    21個(gè)JavaScript事件(Events)屬性匯總

    本文介紹了學(xué)習(xí)JavaScript事件的21個(gè)屬性,算是對(duì)自己近期學(xué)習(xí)javascript的一個(gè)小小的總結(jié),這里推薦給大家。
    2014-12-12
  • ES6基礎(chǔ)語法之class類介紹

    ES6基礎(chǔ)語法之class類介紹

    這篇文章介紹了ES6中class類的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • js中top/parent/frame概述及案例應(yīng)用

    js中top/parent/frame概述及案例應(yīng)用

    top:永遠(yuǎn)指分割窗口最高層次的瀏覽器窗口;parent:包含當(dāng)前分割窗口的父窗口,本文將圍繞js中top、parent、frame進(jìn)行講述及他們的應(yīng)用案例
    2013-02-02
  • javascript Window及document對(duì)象詳細(xì)整理

    javascript Window及document對(duì)象詳細(xì)整理

    注:頁(yè)面上元素name屬性以及JavaScript引用的名稱必須一致包括大小寫否則會(huì)提示你1個(gè)錯(cuò)誤信息 引用的元素為空或者不是對(duì)象
    2011-01-01
  • 一篇文章告訴你JavaScript的作用域和函數(shù)該這樣理解

    一篇文章告訴你JavaScript的作用域和函數(shù)該這樣理解

    這篇文章主要為大家詳細(xì)介紹了JavaScript的作用域和函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • JavaScript 基礎(chǔ)篇之對(duì)象、數(shù)組使用介紹(三)

    JavaScript 基礎(chǔ)篇之對(duì)象、數(shù)組使用介紹(三)

    對(duì)象我們?cè)谇懊嬉埠?jiǎn)單介紹過,它是一種將多個(gè)數(shù)據(jù)值集中在一個(gè)單元的東西,使用名字來存取,它是一個(gè)無序的屬性集合
    2012-04-04
  • javascript常用方法匯總

    javascript常用方法匯總

    本文給大家匯總了一些自己整理的在項(xiàng)目中經(jīng)常能夠用到的javascript小方法,基本都是短小精悍型,方便大家快速開發(fā)。
    2014-12-12

最新評(píng)論

平乐县| 隆德县| 宜城市| 青龙| 静乐县| 电白县| 汽车| 浪卡子县| 仁怀市| 无为县| 安顺市| 兴隆县| 克山县| 龙陵县| 左贡县| 靖州| 静安区| 延寿县| 河南省| 日土县| 克拉玛依市| 沾化县| 金溪县| 得荣县| 璧山县| 呼和浩特市| 沈阳市| 慈溪市| 通州市| 论坛| 桑日县| 阿瓦提县| 若羌县| 江安县| 辰溪县| 随州市| 封丘县| 娱乐| 老河口市| 淮阳县| 科技|