国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端的排序算法總結(jié)

xioqua / 3091人閱讀

摘要:參考冒泡排序典型的排序方法,命名來自魚呼吸時(shí)吹出的氣泡,上層的氣泡總是最大的。時(shí)間復(fù)雜度,屬于不穩(wěn)定的算法特殊情況下會(huì)是空間復(fù)雜度輔助空間是,所以空間復(fù)雜度為

參考lianjie

冒泡排序

典型的排序方法,命名來自魚呼吸時(shí)吹出的氣泡,上層的氣泡總是最大的。

思路:兩層循環(huán),內(nèi)層循環(huán)對(duì)比相鄰兩個(gè)數(shù)據(jù)(j,j+1),假設(shè)j > j + 1則交換元素位置。
外層循環(huán)為長(zhǎng)度限制,在內(nèi)層第一次循環(huán)完成后減少長(zhǎng)度1(因?yàn)樽詈笠粋€(gè)泡已經(jīng)固定,為這個(gè)數(shù)組的最大值)

function bubbleSort(arr){
  for(let i = 0; i < arr.length - 1; i++){
    let flag = false;
    for(let j = 0; j < arr.length - i - 1; j++){
      if(arr[j] > arr[j + 1]){
          let temp = arr[j];
          arr[j] = arr[j+1];
          arr[j+1] = temp;;
          flag = true;
      }
    }
    if(!flag){
      break;
    }
  }
  return arr;
}

加一個(gè)標(biāo)志位flag,如果沒有進(jìn)行交換,將標(biāo)志位置為false,表示排序完成。

時(shí)間復(fù)雜度O(n^2),最優(yōu)情況下是O(n)

空間復(fù)雜度O(1)

選擇排序

顧名思義,每次都選擇最小的,然后交換位置

思路:兩層循環(huán),內(nèi)層循環(huán)為選取第一個(gè)位置的值,然后將它與剩下的值作對(duì)比,得到比它小的則交換位置。外層循環(huán)為控制第一位值的固定(一次循環(huán)后,第一位則為該數(shù)組最小的值,下一次循環(huán)不必帶上)。

function selectionSort(arr){
  for(let i = 0; i < arr.length - 1; i++){
    let index = i;
    for(let j = i+1; j < arr.length; j++){
    //判斷是否有小于當(dāng)前值,有則交換位置
      if(arr[index] > arr[j]){
        index = j;
      }
    }
      let temp = arr[i];
      arr[i] = arr[index ];
      arr[index] = temp;
  }
  return arr;
}

時(shí)間復(fù)雜度:O(n^2),屬于不穩(wěn)定的算法(每次交換之后,它都改變了后續(xù)數(shù)組的順序)

空間復(fù)雜度:O(1)

快速排序

思路:二分法,先找一個(gè)基數(shù),分隔出以基數(shù)為界的左右兩個(gè)數(shù)組,然后遞歸重復(fù)這個(gè)步驟,直到分組剩余一個(gè)數(shù),則我們認(rèn)為已經(jīng)排列完成。

function quickSort(arr){
  if(arr.length <= 1){
    return arr;
  }
  let temp = arr[0];
  const left = [];
  const right = [];
  for(var i = 1; i < arr.length; i++){
    if(arr[i] > temp){
      right.push(arr[i]);
    }else{
      left.push(arr[i]);
    }
  }
  return quickSort(left).concat([temp], quickSort(right));
}

時(shí)間復(fù)雜度:O(n*logn),屬于不穩(wěn)定的算法,特殊情況下會(huì)是O(n^2)

空間復(fù)雜度:輔助空間是logn,所以空間復(fù)雜度為O(logn)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/104911.html

相關(guān)文章

  • 前端 排序算法總結(jié)

    摘要:前言排序算法可能是你學(xué)編程第一個(gè)學(xué)習(xí)的算法,還記得冒泡嗎當(dāng)然,排序和查找兩類算法是面試的熱門選項(xiàng)。本篇將會(huì)總結(jié)一下,在前端的一些排序算法。函數(shù)的性能相信對(duì)于排序算法性能來說,時(shí)間復(fù)雜度是至關(guān)重要的一個(gè)參考因素。 前言 排序算法可能是你學(xué)編程第一個(gè)學(xué)習(xí)的算法,還記得冒泡嗎? 當(dāng)然,排序和查找兩類算法是面試的熱門選項(xiàng)。如果你是一個(gè)會(huì)寫快排的程序猿,面試官在比較你和一個(gè)連快排都不會(huì)寫的人的時(shí)...

    happen 評(píng)論0 收藏0
  • 前端排序算法總結(jié)前端面試題2.0;JavaScript異步編程

    摘要:與異步編程按照維基百科上的解釋獨(dú)立于主控制流之外發(fā)生的事件就叫做異步。因?yàn)榈拇嬖冢辽僭诒粯?biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。在握手過程中,端點(diǎn)交換認(rèn)證和密鑰以建立或恢復(fù)安全會(huì)話。 1、前端 排序算法總結(jié) 排序算法可能是你學(xué)編程第一個(gè)學(xué)習(xí)的算法,還記得冒泡嗎? 當(dāng)然,排序和查找兩類算法是面試的熱門選項(xiàng)。如果你是一個(gè)會(huì)寫快排的程序猿,面試官在比較...

    aaron 評(píng)論0 收藏0
  • 前端排序算法總結(jié)前端面試題2.0;JavaScript異步編程

    摘要:與異步編程按照維基百科上的解釋獨(dú)立于主控制流之外發(fā)生的事件就叫做異步。因?yàn)榈拇嬖冢辽僭诒粯?biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。在握手過程中,端點(diǎn)交換認(rèn)證和密鑰以建立或恢復(fù)安全會(huì)話。 1、前端 排序算法總結(jié) 排序算法可能是你學(xué)編程第一個(gè)學(xué)習(xí)的算法,還記得冒泡嗎? 當(dāng)然,排序和查找兩類算法是面試的熱門選項(xiàng)。如果你是一個(gè)會(huì)寫快排的程序猿,面試官在比較...

    ARGUS 評(píng)論0 收藏0
  • 前端排序算法總結(jié)前端面試題2.0;JavaScript異步編程

    摘要:與異步編程按照維基百科上的解釋獨(dú)立于主控制流之外發(fā)生的事件就叫做異步。因?yàn)榈拇嬖冢辽僭诒粯?biāo)準(zhǔn)化的那一刻起,就支持異步編程了。然而異步編程真正發(fā)展壯大,的流行功不可沒。在握手過程中,端點(diǎn)交換認(rèn)證和密鑰以建立或恢復(fù)安全會(huì)話。 1、前端 排序算法總結(jié) 排序算法可能是你學(xué)編程第一個(gè)學(xué)習(xí)的算法,還記得冒泡嗎? 當(dāng)然,排序和查找兩類算法是面試的熱門選項(xiàng)。如果你是一個(gè)會(huì)寫快排的程序猿,面試官在比較...

    April 評(píng)論0 收藏0
  • 前端中經(jīng)常出現(xiàn)算法總結(jié)

    摘要:在一段時(shí)間的學(xué)習(xí)之后,我總結(jié)羅列了前端中常見見的幾個(gè)算法一排序算法排序算法是比較開發(fā)的算法之一,方法種類較多,在此列舉兩種簡(jiǎn)單的排序算法冒泡排序和快速排序。 雖說我們很多時(shí)候前端很少有機(jī)會(huì)接觸到算法,但對(duì)算法的理解和掌握是一個(gè)優(yōu)秀工程師的評(píng)價(jià)標(biāo)準(zhǔn)之一,而且當(dāng)我們面對(duì)較為復(fù)雜的問題,這些基礎(chǔ)知識(shí)的積累可以幫助我們更好的優(yōu)化解決思路。在一段時(shí)間的學(xué)習(xí)之后,我總結(jié)羅列了前端中常見見的幾個(gè)算法...

    noONE 評(píng)論0 收藏0
  • Deep in JS - 收藏集 - 掘金

    摘要:今天同學(xué)去面試,做了兩道面試題全部做錯(cuò)了,發(fā)過來給道典型的面試題前端掘金在界中,開發(fā)人員的需求量一直居高不下。 排序算法 -- JavaScript 標(biāo)準(zhǔn)參考教程(alpha) - 前端 - 掘金來自《JavaScript 標(biāo)準(zhǔn)參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡(jiǎn)介 算法實(shí)現(xiàn) 選擇排序 簡(jiǎn)介 算法實(shí)現(xiàn) ... 圖例詳解那道 setTimeout 與循環(huán)閉包的經(jīng)典面...

    enali 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<