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

JS常用排序方法實(shí)例代碼解析

 更新時(shí)間:2020年03月03日 12:16:53   作者:東城以東  
這篇文章主要介紹了js常用排序方法實(shí)例代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

有些代碼一兩個(gè)月都會(huì)忘了,有空多做下總結(jié),記錄下來(lái),等需要用到的時(shí)候可以來(lái)翻翻總結(jié)的博客。寫技術(shù)博客,對(duì)自己是一種總結(jié),對(duì)別人,是一種參考。

1.sort()方法

var ar1=[2,4,6,8,1,3]
var ar2=[2,16,36,8,56]
ar1.sort()
ar2.sort()//這個(gè)方法值只能排序第一位數(shù) 也可以字符串進(jìn)行排序
console.log(ar1)//[1,2,3,4,6,8]
console.log(ar2)//[16, 2, 36, 56, 8]

ar2.sort(function(a,b){
  return a-b //a-b為升序
  //return b-a //b-a為降序
})
console.log(ar2)//[2, 8, 16, 36, 56]

2.reverse()方法

var ar1=[2,4,6,8,1,3]
ar1.reverse()//此方法為倒序,也就是反過(guò)來(lái)。并不會(huì)進(jìn)行大小排序
console.log(ar1)//[3, 1, 8, 6, 4, 2]

3.冒泡排序

//每輪依次比較相鄰兩個(gè)數(shù)的大小,后面比前面小則交換
var b=0//設(shè)置用來(lái)調(diào)換位置的值
var a=[1,9,33,2,5,34,23,98,14]//冒泡排序
for(var i=0;i<a.length;i++){
  for(var j=0;j<a.length;j++){
    if(a[j]>a[j+1]){
      b=a[j]
      a[j]=a[j+1]
      a[j+1]=b
    }
  }
}
console.log(a)//[1, 2, 5, 9, 14, 23, 33, 34, 98]

4.選擇排序

//拿第一個(gè)數(shù)與后面數(shù)相比較,如果比后面的數(shù)大則交換
//拿第二個(gè)數(shù)與后面的數(shù)比較,如果比后面的數(shù)大則交換
//直到比較到倒數(shù)第二個(gè)數(shù),最后一個(gè)數(shù)不用比較
var b=0//設(shè)置用來(lái)調(diào)換位置的值
var a=[1,9,33,2,5,34,23,98,14]//冒泡排序
for(var i=0;i<a.length;i++){
  for(var j=i;j<a.length;j++){
    if(a[j]>a[j+1]){
      b=a[j]
      a[j]=a[j+1]
      a[j+1]=b
    }
  }
}
console.log(a)//[1, 2, 5, 9, 14, 23, 33, 34, 98]

5.快速排序

先從數(shù)列中取出一個(gè)數(shù)作為基準(zhǔn)數(shù)

分區(qū)過(guò)程,將比這個(gè)數(shù)大的數(shù)全放到它的右邊,小于或等于它的數(shù)全放到它的左邊

再對(duì)左右區(qū)間重復(fù)第二步,直到各區(qū)間只有一個(gè)數(shù)

function quickSort(arr, i, j) {
 if(i < j) {
  let left = i;
  let right = j;
  let mid = Math.floor((left+right)/2);
  let temp = arr[left];
  arr[left] = arr[mid];
  arr[mid] = temp;
  let pivot = arr[left];
  while(i < j) {
   while(arr[j] >= pivot && i < j) { // 從后往前找比基準(zhǔn)小的數(shù)
    j--;
   }
   if(i < j) {
    arr[i++] = arr[j];
   }
   while(arr[i] <= pivot && i < j) { // 從前往后找比基準(zhǔn)大的數(shù)
    i++;
   }
   if(i < j) {
    arr[j--] = arr[i];
   }
  }
  arr[i] = pivot;
  quickSort(arr, left, i-1);
  quickSort(arr, i+1, right);
  return arr;
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java必學(xué)必會(huì)之static關(guān)鍵字

    java必學(xué)必會(huì)之static關(guān)鍵字

    java必學(xué)必會(huì)之static關(guān)鍵字,static關(guān)鍵字是很多朋友在編寫代碼和閱讀代碼時(shí)碰到的比較難以理解的一個(gè)關(guān)鍵字,下面結(jié)合大家一起學(xué)習(xí)static關(guān)鍵字
    2015-12-12
  • 談?wù)刬mpress.js初步理解

    談?wù)刬mpress.js初步理解

    impress.js 是國(guó)外一位開(kāi)發(fā)者受 Prezi 啟發(fā),采用 CSS3 與 JavaScript 語(yǔ)言完成的一個(gè)可供開(kāi)發(fā)者使用的表現(xiàn)層框架(演示工具)。感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2015-09-09
  • JS數(shù)組操作大全對(duì)象數(shù)組根據(jù)某個(gè)相同的字段分組

    JS數(shù)組操作大全對(duì)象數(shù)組根據(jù)某個(gè)相同的字段分組

    這篇文章主要介紹了JS數(shù)組操作大全對(duì)象數(shù)組根據(jù)某個(gè)相同的字段分組,需要注意的是,在開(kāi)發(fā)過(guò)程這種數(shù)組的處理函數(shù),應(yīng)當(dāng)被編寫到項(xiàng)目的公共工具函數(shù)庫(kù)中全局調(diào)用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • JavaScript高仿支付寶倒計(jì)時(shí)頁(yè)面及代碼實(shí)現(xiàn)

    JavaScript高仿支付寶倒計(jì)時(shí)頁(yè)面及代碼實(shí)現(xiàn)

    在支付寶上我們經(jīng)常會(huì)見(jiàn)到支付寶倒計(jì)時(shí)功能,倒計(jì)時(shí)應(yīng)用非常廣泛,下文給大家介紹js制作支付寶倒計(jì)時(shí)功能,但是里面涉及到,倒計(jì)時(shí),彈框,以及字體圖的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2016-10-10
  • JavaScript+html5 canvas繪制繽紛多彩的三角形效果完整實(shí)例

    JavaScript+html5 canvas繪制繽紛多彩的三角形效果完整實(shí)例

    這篇文章主要介紹了JavaScript+html5 canvas繪制繽紛多彩的三角形效果,以完整實(shí)例形式分析了html5的canvas繪制圖形的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • JavaScript?split()方法定義及更多實(shí)例

    JavaScript?split()方法定義及更多實(shí)例

    這篇文章主要給大家介紹了關(guān)于JavaScript?split()方法定義及更多實(shí)例的相關(guān)資料,js里的split()方法大家都知道用于將字符串轉(zhuǎn)化為字符串?dāng)?shù)組,文中通過(guò)代碼實(shí)例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • 按下回車鍵指向下一個(gè)位置的一個(gè)函數(shù)代碼

    按下回車鍵指向下一個(gè)位置的一個(gè)函數(shù)代碼

    本篇文章主要是對(duì)按下回車鍵指向下一個(gè)位置的一個(gè)函數(shù)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-03-03
  • ajaxControlToolkit AutoCompleteExtender的用法

    ajaxControlToolkit AutoCompleteExtender的用法

    昨天在搜索中使用了這個(gè)控件,不過(guò)不知道為什么在IE中反應(yīng)比較慢
    2008-10-10
  • es6 super關(guān)鍵字的理解與應(yīng)用實(shí)例分析

    es6 super關(guān)鍵字的理解與應(yīng)用實(shí)例分析

    這篇文章主要介紹了es6 super關(guān)鍵字的理解與應(yīng)用,結(jié)合實(shí)例形式分析了es6 super關(guān)鍵字的功能、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Bootstrap實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)(親測(cè)可用)

    Bootstrap實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)(親測(cè)可用)

    這篇文章主要為大家詳細(xì)介紹了Bootstrap實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評(píng)論

安图县| 唐山市| 芜湖市| 阜城县| 房山区| 中方县| 中阳县| 辽阳市| 德兴市| 汶川县| 北辰区| 台东县| 苏尼特右旗| 紫阳县| 鲜城| 桐城市| 义乌市| 游戏| 延长县| 邢台市| 嵩明县| 西华县| 湘潭县| 简阳市| 乌兰察布市| 宝应县| 清苑县| 崇州市| 齐河县| 永嘉县| 广东省| 连城县| 杨浦区| 阿坝县| 凤山市| 缙云县| 伽师县| 砚山县| 竹溪县| 杭锦旗| 信丰县|