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

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

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

最近開始學習數(shù)據(jù)結構。

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

因為方向是前端,所以用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();//排序結果:[15, 19, 2, 26, 27, 3, 36, 38, 4, 44, 46, 47, 48, 5, 50]
testArr2.sort(function(a,b){return a>b});//排序結果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
testArr3.sort(function(a,b){return a-b});//排序結果:[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);//排序結果:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]
bubbleSort2(testArr2);//排序結果:[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);//排序結果是:[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時,說明已經排到了數(shù)組的最開頭
          array[0]=curElement;
        }
      }else{
        array[j+1]=curElement;
         break;
      }
    };
  };
}
 insertSort(testArr);//排序結果是:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]

相關文章

  • javascript的BOM

    javascript的BOM

    BOM是瀏覽器的窗口對象,提供了很多窗口處理的API。在webapp框架越來越多的情況下,需要我們在同一窗口處理不同頁面、不同的ajax數(shù)據(jù),則需要我們熟悉BOM的內容。
    2016-05-05
  • 淺談javascript中new操作符的原理

    淺談javascript中new操作符的原理

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

    JavaScript學習筆記之Function對象

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

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

    本文介紹了學習JavaScript事件的21個屬性,算是對自己近期學習javascript的一個小小的總結,這里推薦給大家。
    2014-12-12
  • ES6基礎語法之class類介紹

    ES6基礎語法之class類介紹

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

    js中top/parent/frame概述及案例應用

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

    javascript Window及document對象詳細整理

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

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

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

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

    對象我們在前面也簡單介紹過,它是一種將多個數(shù)據(jù)值集中在一個單元的東西,使用名字來存取,它是一個無序的屬性集合
    2012-04-04
  • javascript常用方法匯總

    javascript常用方法匯總

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

最新評論

裕民县| 霍城县| 麦盖提县| 龙胜| 延吉市| 沁水县| 滨州市| 启东市| 屏山县| 汝阳县| 阿城市| 宝丰县| 陆川县| 庄浪县| 栖霞市| 安阳县| 延川县| 桦川县| 延寿县| 巴彦淖尔市| 盱眙县| 多伦县| 曲沃县| 滦平县| 和静县| 同江市| 曲麻莱县| 民勤县| 临城县| 申扎县| 洛浦县| 盘锦市| 永靖县| 旬邑县| 正阳县| 原平市| 册亨县| 盘山县| 随州市| 南陵县| 广安市|