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

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ù)組的長度-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)文章

  • 10分鐘掌握XML、JSON及其解析

    10分鐘掌握XML、JSON及其解析

    最近一段時(shí)間,個(gè)人綜合了之前對XML、JSON的一些了解,參考了相關(guān)資料,再結(jié)合視頻的代碼,把自己的一些思考融入了這篇總結(jié)文檔中,同時(shí)嘗試用通俗詼諧的語言風(fēng)格來闡述,期望能給感興趣的讀者帶來幫助
    2016-10-10
  • 網(wǎng)頁全屏顯示代碼說明分析

    網(wǎng)頁全屏顯示代碼說明分析

    下面分享網(wǎng)頁全屏顯示代碼,想做全屏顯示效果的朋友可以參照下。
    2009-07-07
  • uniapp實(shí)現(xiàn)錄音上傳功能

    uniapp實(shí)現(xiàn)錄音上傳功能

    這篇文章主要介紹了uniapp 實(shí)現(xiàn)錄音上傳功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • script標(biāo)簽屬性用type還是language

    script標(biāo)簽屬性用type還是language

    本文介紹了javascript腳本中標(biāo)簽屬性type與language的區(qū)別分析,有需要的小伙伴可以參考下
    2015-01-01
  • JavaScript 鏈?zhǔn)浇Y(jié)構(gòu)序列化詳解

    JavaScript 鏈?zhǔn)浇Y(jié)構(gòu)序列化詳解

    這篇文章主要介紹了JavaScript 鏈?zhǔn)浇Y(jié)構(gòu)序列化詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 詳解JavaScript語言的基本語法要求

    詳解JavaScript語言的基本語法要求

    這篇文章主要介紹了JavaScript語言的基本語法要求要學(xué)習(xí)好JavaScript,首先我們要懂JavaScript語言的一些基本語法要求,感興趣的小伙伴們可以參考一下
    2015-11-11
  • Knockoutjs快速入門(經(jīng)典)

    Knockoutjs快速入門(經(jīng)典)

    Knockoutjs是一個(gè)JavaScript實(shí)現(xiàn)的MVVM框架.主要有如下幾個(gè)功能1. Declarative bindings2. Observables and dependency tracking3. Templating,需要了解的朋友可以參考下
    2012-12-12
  • Javascript對象字面量的理解

    Javascript對象字面量的理解

    這篇文章主要介紹對Javascript對象字面量的理解,通俗易懂,需要的朋友可以參考下。
    2016-06-06
  • JavaScript中的Math.LOG2E屬性使用詳解

    JavaScript中的Math.LOG2E屬性使用詳解

    這篇文章主要介紹了JavaScript中的Math.LOG2E屬性使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • JavaScript 學(xué)習(xí)筆記之?dāng)?shù)據(jù)類型

    JavaScript 學(xué)習(xí)筆記之?dāng)?shù)據(jù)類型

    javascript數(shù)據(jù)類型非常簡單,僅僅包含undefined、null、string、Boolean、number以及object,今天我們就針對這幾個(gè)數(shù)據(jù)類型,一一進(jìn)行講解,方便大家理解記憶
    2015-01-01

最新評論