/**
* 歸并排序
* 采用分治法扛或,
* 分是將無序列表遞歸的二分咸产,直到只有一個元素而晒,此時一個元素是有有序的妓蛮,
* 治是在每一組都只有一個元素后開始對左右元素比較壁肋,處理成小的有序列表旺坠,直到所有變?yōu)橛行? * @param {*} arr
*/
/**
* 假設列表為【2,5,4,3】肩袍,先分割成只有一個元素的列表[2] [5] [4] [3]
* 此時left = [2], right =[5]邢笙,處理成 [2,5]
* 此時left = [4], right=[3]梧却, 處理成[3,4]
* 此時left = [2,5], right = [3,4]挡毅, 處理成[2,3,4,5]
*/
function mergeSort(arr) {
var length = arr.length
if (length === 1) {
return arr
}
var mid = Math.floor(length / 2)
var left = arr.slice(0, mid)
var right = arr.slice(mid)
return merge(mergeSort(left), mergeSort(right))
}
function merge(left, right) {
var temp = []
var i = 0,
j = 0
while (i < left.length && j < right.length) {
if (left[i] < right[j]) {
temp.push(left[i])
i++
} else {
temp.push(right[j])
j++
}
}
while (i < left.length) {
temp.push(left[i])
i++
}
while (j < right.length) {
temp.push(right[j])
j++
}
console.log(temp)
return temp
}
console.log(mergeSort(arr))
js算法排序-歸并排序
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門嘶是,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钙勃,“玉大人,你說我怎么就攤上這事聂喇∠皆矗” “怎么了蔚携?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長克饶。 經(jīng)常有香客問我酝蜒,道長,這世上最難降的妖魔是什么矾湃? 我笑而不...
- 正文 為了忘掉前任亡脑,我火速辦了婚禮,結果婚禮上邀跃,老公的妹妹穿的比我還像新娘霉咨。我一直安慰自己,他們只是感情好拍屑,可當我...
- 文/花漫 我一把揭開白布躯护。 她就那樣靜靜地躺著,像睡著了一般丽涩。 火紅的嫁衣襯著肌膚如雪棺滞。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼崔泵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了猪瞬?” 一聲冷哼從身側響起憎瘸,我...
- 正文 年R本政府宣布,位于F島的核電站饰抒,受9級特大地震影響肮砾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袋坑,卻給世界環(huán)境...
- 文/蒙蒙 一仗处、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧枣宫,春花似錦婆誓、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至翅娶,卻和暖如春文留,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竭沫。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 選擇排序 對于任何輸入炎咖,時間為O(n*n)赃泡; 冒泡排序 最優(yōu)(對于升序的數(shù)組寒波,因為加入了一個跳出判斷):O(n),...