
归并排序的基本思想是什么?
归并排序采用分治法(Divide and Conquer),将待排序的数组分成若干个子数组再对子数组进行排序,最后将已排序的子数组合并成一个大的有序数组。
下面是归并排序的基本步骤:
使用自上而下的递归实现:
// 归并函数
function merge(left, right) {
var result = [];
let i = 0,
j = 0,
k = 0;
while (i < left.length && j < right.length) {
// 判断大小
(left[i] <= right[j] && (result[k++] = left[i++]))
||(result[k++]=right[j++]);
}
// 添加剩余元素
while (i < left.length) {
result