成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

js 插入算法

phodal / 774人閱讀

摘要:插入算法插入排序有點(diǎn)類(lèi)似人類(lèi)按字母順序?qū)?shù)據(jù)進(jìn)行排序,就如同你打撲克牌一樣,將摸來(lái)的撲克按大小放到合適的位置一樣。

// 插入算法

// 插入排序有點(diǎn)類(lèi)似人類(lèi)按字母順序?qū)?shù)據(jù)進(jìn)行排序,就如同你打撲克牌一樣,將摸來(lái)的撲克按大小放到合適的位置一樣。它的原理就是通過(guò)嵌套循環(huán),外循環(huán)將數(shù)組元素挨個(gè)移動(dòng),而內(nèi)循環(huán)則對(duì)外循環(huán)中選中的元素及它后面的元素進(jìn)行比較;如果外循環(huán)中選中的元素比內(nèi)循環(huán)中選中的元素小,那么數(shù)組元素會(huì)向右移動(dòng),為內(nèi)循環(huán)中的這個(gè)元素騰出位置。
// 實(shí)現(xiàn)步驟如下:

// 1.從第一個(gè)元素開(kāi)始,該元素默認(rèn)已經(jīng)被排序
// 2.取出下一個(gè)元素,在已經(jīng)排序的元素序列中從后向前掃描
// 3.如果該元素(已排序)大于新元素,將該元素移到下一位置
// 4.重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置
// 5.將新元素插入到該位置
// 6.重復(fù)步驟2~5,直到排序完成

function insertionSort(arr) {

var len = arr.length;
var preIndex, current;
for (var i = 1; i < len; i++) {
    preIndex = i - 1;
    current = arr[i];
    while(preIndex >= 0 && arr[preIndex] > current) {
        arr[preIndex+1] = arr[preIndex];
        preIndex--;
    }
    arr[preIndex+1] = current;
}
return arr;

}

const arr = [91, 60, 96, 7, 35, 65, 10, 65, 9, 30, 20, 31, 77, 81, 24];
console.log(insertionSort(arr));

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101320.html

相關(guān)文章

  • 排序算法分析總結(jié)(附js實(shí)現(xiàn))

    摘要:本文對(duì)一些排序算法進(jìn)行了簡(jiǎn)單分析,并給出了的代碼實(shí)現(xiàn)。平均時(shí)間復(fù)雜度不好分析,它是冒泡排序是穩(wěn)定的排序算法。冒泡排序是原地排序算法原地排序指的是空間復(fù)雜度是的排序算法。歸并排序,會(huì)將數(shù)組從中間分成左右兩部分。 本文對(duì)一些排序算法進(jìn)行了簡(jiǎn)單分析,并給出了 javascript 的代碼實(shí)現(xiàn)。因?yàn)楸疚陌舜罅康呐判蛩惴ǎ苑治霾粫?huì)非常詳細(xì),適合有對(duì)排序算法有一定了解的同學(xué)。本文內(nèi)容其實(shí)不...

    liaoyg8023 評(píng)論0 收藏0
  • JS中可能用得到的全部的排序算法

    本篇有7k+字, 系統(tǒng)梳理了js中常見(jiàn)的12種排序算法。除了基本排序算法,文章還包含了希爾排序、堆排序、桶排序等較為復(fù)雜的排序?qū)崿F(xiàn),如果喜歡請(qǐng)點(diǎn)贊支持~謝謝. 原文: http://louiszhai.github.io/20... 導(dǎo)讀 排序算法可以稱(chēng)得上是我的盲點(diǎn), 曾幾何時(shí)當(dāng)我知道Chrome的Array.prototype.sort使用了快速排序時(shí), 我的內(nèi)心是奔潰的(啥是快排, 我只知道...

    verano 評(píng)論0 收藏0
  • 基本算法學(xué)習(xí)(一)之希爾排序(JS)

    摘要:動(dòng)態(tài)定義間隔序列參考來(lái)源詳細(xì)介紹了十種算法大家可以去學(xué)習(xí)下以后大概會(huì)盡量每天更新一個(gè)算法學(xué)習(xí)吧溫故而知新 參考書(shū):嚴(yán)蔚敏-數(shù)據(jù)結(jié)構(gòu) 希爾排序(Shells Sort) 希爾排序又稱(chēng)縮小增量排序,歸屬于插入排序一類(lèi),簡(jiǎn)單來(lái)說(shuō),和我們的插入排序比,它更快. 奇妙的記憶點(diǎn): 內(nèi)排序(內(nèi)存排序就夠了) 不穩(wěn)定(排序后原始順序無(wú)法保證) 希爾排序重點(diǎn)在于分割. 基本思想: 將整個(gè)待排序記錄序...

    cooxer 評(píng)論0 收藏0
  • JS排序算法

    摘要:冒泡排序冒泡算法是比較相鄰的兩項(xiàng),如果前者比后者大,就交換他們。插入排序最好情況下時(shí)間復(fù)雜度是,其他情況下也都是。代碼演示插入排序歸并排序原生里面的方法,在里面是用歸并排序?qū)崿F(xiàn)的,而在里面是用快速排序的變體來(lái)實(shí)現(xiàn)的。 1、冒泡排序 冒泡算法是比較相鄰的兩項(xiàng),如果前者比后者大,就交換他們。 假設(shè)一共有n項(xiàng),那么一共需要n-1趟,第一趟需要交換n-1次,但是第一趟結(jié)束后,最后一項(xiàng)基本確定就...

    notebin 評(píng)論0 收藏0
  • JS排序算法

    摘要:冒泡排序冒泡算法是比較相鄰的兩項(xiàng),如果前者比后者大,就交換他們。插入排序最好情況下時(shí)間復(fù)雜度是,其他情況下也都是。代碼演示插入排序歸并排序原生里面的方法,在里面是用歸并排序?qū)崿F(xiàn)的,而在里面是用快速排序的變體來(lái)實(shí)現(xiàn)的。 1、冒泡排序 冒泡算法是比較相鄰的兩項(xiàng),如果前者比后者大,就交換他們。 假設(shè)一共有n項(xiàng),那么一共需要n-1趟,第一趟需要交換n-1次,但是第一趟結(jié)束后,最后一項(xiàng)基本確定就...

    sihai 評(píng)論0 收藏0
  • 排序算法速度測(cè)試(插入排序、二分法插入、選擇排序、快速排序、堆排序)js實(shí)現(xiàn)

    摘要:公共函數(shù)庫(kù)用于取出隨機(jī)排列的數(shù)字原數(shù)組給原數(shù)組賦值排序算法插入排序時(shí)間復(fù)雜度二分法插入排序選擇排序快速排序一堆排序測(cè)試用例插入排序時(shí)間測(cè)試二分法插入排序時(shí)間測(cè)試選擇排序時(shí)間測(cè)試快速排序時(shí)間測(cè)試一堆 公共函數(shù)庫(kù)(用于取出隨機(jī)排列的數(shù)字) module.exports={ randomIntegerArray:function(count){ var origina...

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

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

0條評(píng)論

閱讀需要支付1元查看
<