ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
<hr> <div id="div1"><h3> <font color=red > 归并排序 </font><h3></div> 分解----将序列每次折半拆分 合并----将划分后的序列段两两排序合并 [合并两个有序数组](https://leetcode-cn.com/problems/merge-sorted-array/) ![](https://img.kancloud.cn/6d/b1/6db1bacfd27d7e4132e09da9472f4539_601x434.png) 「归并排序」比「快速排序」好的一点是,它借助了额外空间,可以实现「稳定排序」 ```javascript function merge(left, right) { let result = [] while (left.length > 0 && right.length > 0) { if (left[0] < right[0]) { result.push(left.shift()) } else { result.push(right.shift()) } } return result.concat(left).concat(right) } function mergeSort(arr) { if (arr.length == 1) { return arr } let middle = Math.floor(arr.length / 2), left = arr.slice(0, middle), right = arr.slice(middle) return merge(mergeSort(left), mergeSort(right)) } console.log(mergeSort([7, 3, 4, 5, 10, 7, 8, 2])) ```