摘要:插入算法插入排序有點類似人類按字母順序對數據進行排序,就如同你打撲克牌一樣,將摸來的撲克按大小放到合適的位置一樣。
// 插入算法
// 插入排序有點類似人類按字母順序對數據進行排序,就如同你打撲克牌一樣,將摸來的撲克按大小放到合適的位置一樣。它的原理就是通過嵌套循環,外循環將數組元素挨個移動,而內循環則對外循環中選中的元素及它后面的元素進行比較;如果外循環中選中的元素比內循環中選中的元素小,那么數組元素會向右移動,為內循環中的這個元素騰出位置。
// 實現步驟如下:
// 1.從第一個元素開始,該元素默認已經被排序
// 2.取出下一個元素,在已經排序的元素序列中從后向前掃描
// 3.如果該元素(已排序)大于新元素,將該元素移到下一位置
// 4.重復步驟3,直到找到已排序的元素小于或者等于新元素的位置
// 5.將新元素插入到該位置
// 6.重復步驟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));
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/101320.html
摘要:本文對一些排序算法進行了簡單分析,并給出了的代碼實現。平均時間復雜度不好分析,它是冒泡排序是穩定的排序算法。冒泡排序是原地排序算法原地排序指的是空間復雜度是的排序算法。歸并排序,會將數組從中間分成左右兩部分。 本文對一些排序算法進行了簡單分析,并給出了 javascript 的代碼實現。因為本文包含了大量的排序算法,所以分析不會非常詳細,適合有對排序算法有一定了解的同學。本文內容其實不...
本篇有7k+字, 系統梳理了js中常見的12種排序算法。除了基本排序算法,文章還包含了希爾排序、堆排序、桶排序等較為復雜的排序實現,如果喜歡請點贊支持~謝謝. 原文: http://louiszhai.github.io/20... 導讀 排序算法可以稱得上是我的盲點, 曾幾何時當我知道Chrome的Array.prototype.sort使用了快速排序時, 我的內心是奔潰的(啥是快排, 我只知道...
摘要:動態定義間隔序列參考來源詳細介紹了十種算法大家可以去學習下以后大概會盡量每天更新一個算法學習吧溫故而知新 參考書:嚴蔚敏-數據結構 希爾排序(Shells Sort) 希爾排序又稱縮小增量排序,歸屬于插入排序一類,簡單來說,和我們的插入排序比,它更快. 奇妙的記憶點: 內排序(內存排序就夠了) 不穩定(排序后原始順序無法保證) 希爾排序重點在于分割. 基本思想: 將整個待排序記錄序...
摘要:公共函數庫用于取出隨機排列的數字原數組給原數組賦值排序算法插入排序時間復雜度二分法插入排序選擇排序快速排序一堆排序測試用例插入排序時間測試二分法插入排序時間測試選擇排序時間測試快速排序時間測試一堆 公共函數庫(用于取出隨機排列的數字) module.exports={ randomIntegerArray:function(count){ var origina...
閱讀 3622·2021-11-24 10:25
閱讀 2548·2021-11-24 09:38
閱讀 1236·2021-09-08 10:41
閱讀 2919·2021-09-01 10:42
閱讀 2600·2021-07-25 21:37
閱讀 1996·2019-08-30 15:56
閱讀 927·2019-08-30 15:55
閱讀 2763·2019-08-30 15:54