插入排序:
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) }}
歸并排序(酷炫簡(jiǎn)單)
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));}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/102406.html
摘要:實(shí)現(xiàn)插入排序插入排序是一種非常簡(jiǎn)單的算法,最適合大部分已經(jīng)被排好序的數(shù)據(jù)。由此才有了這個(gè)名字插入排序。插入排序的最壞情況是輸入的數(shù)組是按逆序排序的??偨Y(jié)當(dāng)輸入的數(shù)組已經(jīng)大部分被排好序時(shí),插入排序的效果最佳。 翻譯:瘋狂的技術(shù)宅https://medium.com/@jimrottin... 本文首發(fā)微信公眾號(hào):前端先鋒歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 插入排序的工作原理...
摘要:假定出售一段長(zhǎng)度為英寸的鋼條的價(jià)格為單位,鋼條長(zhǎng)度均為整英寸。注若長(zhǎng)度為英寸的鋼條的價(jià)格足夠大,最優(yōu)解可能就是完全不需要切割??紤]長(zhǎng)度為的情況,下圖給出了英寸鋼條的所有切割方案。 DP和分治的相似 都是通過(guò)組合子問(wèn)題的解來(lái)求解原問(wèn)題。 DP中的programming指的是一種表格法,而非coding。 DP和分治的不同 分治步驟:(例如歸并排序) 將問(wèn)題劃分為互不相交的子問(wèn)題 ...
摘要:現(xiàn)在發(fā)出來(lái)的版本,我重新使用了語(yǔ)言實(shí)現(xiàn)。其實(shí)我之前介紹的老師課程也大量參考和使用算法這本書(shū)上的思路和例題。看這本書(shū)主要是讓我覺(jué)得算法可以以比較輕松的方式入門(mén)。劍指這本書(shū)主要用于準(zhǔn)備算法面試,在網(wǎng)絡(luò)上備受好評(píng)。 我是一個(gè)半路出家的程序員,在我剛開(kāi)始從事編碼工作的頭幾年,我沒(méi)有接觸過(guò)算法和數(shù)據(jù)結(jié)構(gòu),覺(jué)得它們是只會(huì)在我找工作的時(shí)候用得到的知識(shí)。盡管有很多人跟我說(shuō)過(guò)算法和數(shù)據(jù)結(jié)構(gòu)無(wú)比重要,我也...
摘要:之所以把計(jì)數(shù)排序桶排序基數(shù)排序放在一起比較,是因?yàn)樗鼈兊钠骄鶗r(shí)間復(fù)雜度都為。動(dòng)畫(huà)計(jì)數(shù)排序思想找出待排序的數(shù)組中最大和最小的元素。桶排序計(jì)數(shù)排序能派上用場(chǎng)嗎手機(jī)號(hào)碼有位,范圍太大,顯然不適合用這兩種排序算法。 showImg(https://segmentfault.com/img/bVbuF9e?w=900&h=500); 1. 前言 算法為王。 想學(xué)好前端,先練好內(nèi)功,只有內(nèi)功深厚者...
閱讀 3229·2021-11-12 10:36
閱讀 1304·2019-08-30 15:56
閱讀 2455·2019-08-30 11:26
閱讀 563·2019-08-29 13:00
閱讀 3622·2019-08-28 18:08
閱讀 2763·2019-08-26 17:18
閱讀 1914·2019-08-26 13:26
閱讀 2443·2019-08-26 11:39