插入排序:
var a = [1,7,4,2,17,13,9]
function insertionSort(arr){
arr.map((d,index)=>{ let i = index while(d0){ [arr[i-1],arr[i]]=[arr[i],arr[i-1]] i-- } })
}
insertionSort(a)
歸并排序(非hack)
function merge (arr,l,m,r){
var left = [] var right = [] for (let i =l;i}
function mergeSort(arr,l,r){if(r>l){ var m=Math.ceil((l+r)/2) // console.log(m) mergeSort(arr,l,m-1) mergeSort(arr,m,r) merge(arr,l,m,r) }}
歸并排序(酷炫簡單)
function merge(left, right) {
var tmp = []; while (left.length && right.length) { if (left[0] < right[0]) tmp.push(left.shift()); else tmp.push(right.shift()); } return tmp.concat(left, right);}
function mergeSort(a) {
if (a.length === 1) return a; var mid = ~~(a.length / 2) , left = a.slice(0, mid) , right = a.slice(mid); return merge(mergeSort(left), mergeSort(right));}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102406.html
摘要:實現(xiàn)插入排序插入排序是一種非常簡單的算法,最適合大部分已經被排好序的數(shù)據。由此才有了這個名字插入排序。插入排序的最壞情況是輸入的數(shù)組是按逆序排序的。總結當輸入的數(shù)組已經大部分被排好序時,插入排序的效果最佳。 翻譯:瘋狂的技術宅https://medium.com/@jimrottin... 本文首發(fā)微信公眾號:前端先鋒歡迎關注,每天都給你推送新鮮的前端技術文章 插入排序的工作原理...
摘要:假定出售一段長度為英寸的鋼條的價格為單位,鋼條長度均為整英寸。注若長度為英寸的鋼條的價格足夠大,最優(yōu)解可能就是完全不需要切割。考慮長度為的情況,下圖給出了英寸鋼條的所有切割方案。 DP和分治的相似 都是通過組合子問題的解來求解原問題。 DP中的programming指的是一種表格法,而非coding。 DP和分治的不同 分治步驟:(例如歸并排序) 將問題劃分為互不相交的子問題 ...
摘要:現(xiàn)在發(fā)出來的版本,我重新使用了語言實現(xiàn)。其實我之前介紹的老師課程也大量參考和使用算法這本書上的思路和例題。看這本書主要是讓我覺得算法可以以比較輕松的方式入門。劍指這本書主要用于準備算法面試,在網絡上備受好評。 我是一個半路出家的程序員,在我剛開始從事編碼工作的頭幾年,我沒有接觸過算法和數(shù)據結構,覺得它們是只會在我找工作的時候用得到的知識。盡管有很多人跟我說過算法和數(shù)據結構無比重要,我也...
摘要:之所以把計數(shù)排序桶排序基數(shù)排序放在一起比較,是因為它們的平均時間復雜度都為。動畫計數(shù)排序思想找出待排序的數(shù)組中最大和最小的元素。桶排序計數(shù)排序能派上用場嗎手機號碼有位,范圍太大,顯然不適合用這兩種排序算法。 showImg(https://segmentfault.com/img/bVbuF9e?w=900&h=500); 1. 前言 算法為王。 想學好前端,先練好內功,只有內功深厚者...
閱讀 3209·2021-11-12 10:36
閱讀 1258·2019-08-30 15:56
閱讀 2444·2019-08-30 11:26
閱讀 551·2019-08-29 13:00
閱讀 3609·2019-08-28 18:08
閱讀 2749·2019-08-26 17:18
閱讀 1893·2019-08-26 13:26
閱讀 2432·2019-08-26 11:39