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

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

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

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

一點一點整理,希望能堅持下來。

因為方向是前端,所以用JavaScript實現(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];//初始時設未排序的第一個值為選中值
     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,否則會造成數(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){//當j==0時,說明已經(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]

相關文章

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

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

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

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

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

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

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

    script標簽屬性用type還是language

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

    JavaScript 鏈式結(jié)構(gòu)序列化詳解

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

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

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

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

    Knockoutjs是一個JavaScript實現(xiàn)的MVVM框架.主要有如下幾個功能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入門學習中的基礎知識,需要的朋友可以參考下
    2015-06-06
  • JavaScript 學習筆記之數(shù)據(jù)類型

    JavaScript 學習筆記之數(shù)據(jù)類型

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

最新評論