js數(shù)組排序和數(shù)組去重

數(shù)組排序

1.冒泡排序

從第0項開始皱埠,與其相鄰后面的一項比較,如果大于后一項就交換位置黄鳍,使大的在后柠横,遍歷一輪后最大的數(shù)到了倒數(shù)第一項位置窃款,繼續(xù)以此類推實現(xiàn)冒泡排序。

  function bubbleSort(arr){
      for(var i=0;i<arr.length-1;i++){
          for(var j=0;j<arr.length-i-1;j++){//循環(huán)到第i 輪時牍氛,后面有i 個數(shù)已經(jīng)排好了
              if(arr[j]>arr[j+1]){
                  var temp=arr[j];
                  arr[j]=arr[j+1];
                  arr[j+1]=temp;
              }
          }
      }
      return arr;
  }
console.log(bubbleSort([6,1,2,4,3,5]))

2.選擇排序

默認第0項是最小的晨继,遍歷找數(shù)組最小值的索引,找到后和第0項交換搬俊,一輪遍歷后第0項為最小值紊扬,繼續(xù)以此類推依次將最小值選出放在前面蜒茄。

 function selectSort(arr){
      var min,temp;
      for(var i=0;i<arr.length-1;i++){
          min=i;
          for(var j=i+1;j<arr.length;j++){//在i的身后遍歷一圈找到最小值的索引
              if(arr[j]<arr[min]){
                  min = j;
              }
          }
          //將最小值和當前i位置的值互換,則最小值占據(jù)了i的位置
          temp=arr[i];
          arr[i]=arr[min];
          arr[min]=temp;
      }
      return arr;
}
console.log(selectSort([6,1,2,4,3,5]))

3.快速排序

從數(shù)組中間選一項為基準餐屎,小的放左側(cè)檀葛,大的放右側(cè),調(diào)用函數(shù)本身直到數(shù)組長度為1啤挎,再將左中右拼接在一起驻谆。

function quickSort(arr){
      if(arr.length<2){return arr}
      var left=[],right=[],mid=arr.splice(Math.floor(arr.length/2),1);
      for(var i=0;i<arr.length;i++){
            if(arr[i]<mid){
                left.push(arr[i]);
            }else {
                right.push(arr[i])
            }
      }
      return quickSort(left).concat(mid,quickSort(right))
  }
console.log(quickSort([6,1,2,4,3,5]))

4.插入排序

插入排序就像是玩撲克,當你拿到的牌是354時庆聘,你會不由自主的將4插入到3和5的中間胜臊。其實插入排序就是假設(shè)第0項開始是一個已經(jīng)排序好的序列,每次拿一個后面的項進來比較伙判,然后插入到對應(yīng)位置象对,就像玩撲克時每抓一張牌就和前面排好的牌排序一下并插入。

function insertionSort(array) {
  for (var i = 1; i < array.length; i++) {
    var key = array[i];
    var j = i - 1;
    while ( array[j] > key) {
      array[j + 1] = array[j];
         j--;
    }
    array[j + 1] = key;
  }
  return array;
}
var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
console.log(insertionSort(arr));

5.sort 排序

function sortNumber(a,b)
{
    return a - b
}
arr.sort(sortNumber)

數(shù)組去重

1.創(chuàng)建新數(shù)組

function uniq(arr){
  let newArr=[];
  for(let i;i<arr.length;i++){
      if(newArr.indexOf(arr[i])===-1){
          newArr.push(arr[i])
      }
  }
  return newArr;
}

2.數(shù)組下標法

function uniq(arr){
  let newArr=[];
  for(let i;i<arr.length;i++){
      if(arr.indexOf(arr[i])===i){//等于i代表未重復(fù)宴抚,未重復(fù)的推入新數(shù)組
          newArr.push(arr[i])
      }
  }
  return newArr;
}

3.set 去重

[...new Set(arr)]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勒魔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子菇曲,更是在濱河造成了極大的恐慌冠绢,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件常潮,死亡現(xiàn)場離奇詭異弟胀,居然都是意外死亡,警方通過查閱死者的電腦和手機喊式,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門孵户,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人岔留,你說我怎么就攤上這事夏哭。” “怎么了献联?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵竖配,是天一觀的道長。 經(jīng)常有香客問我里逆,道長进胯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任运悲,我火速辦了婚禮龄减,結(jié)果婚禮上项钮,老公的妹妹穿的比我還像新娘班眯。我一直安慰自己希停,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布署隘。 她就那樣靜靜地躺著宠能,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磁餐。 梳的紋絲不亂的頭發(fā)上违崇,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音诊霹,去河邊找鬼羞延。 笑死,一個胖子當著我的面吹牛脾还,可吹牛的內(nèi)容都是我干的伴箩。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼鄙漏,長吁一口氣:“原來是場噩夢啊……” “哼嗤谚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起怔蚌,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤巩步,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后桦踊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椅野,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年钞钙,在試婚紗的時候發(fā)現(xiàn)自己被綠了鳄橘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡芒炼,死狀恐怖瘫怜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情本刽,我是刑警寧澤鲸湃,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站子寓,受9級特大地震影響暗挑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斜友,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一炸裆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鲜屏,春花似錦烹看、人聲如沸国拇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酱吝。三九已至,卻和暖如春土思,著一層夾襖步出監(jiān)牢的瞬間务热,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工己儒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留崎岂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓闪湾,卻偏偏與公主長得像该镣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子响谓,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350