青海省教育厅门户网站登录,开封网站设计价格,企业网站建设管理制度,android聊天软件开发当然#xff0c;下面是使用JavaScript编写的归并排序的示例代码。归并排序是一种分治算法#xff0c;其基本思想是将数组分成两半进行排序#xff0c;然后将排序后的结果合并在一起。
function mergeSort(arr) {if (arr.length 1) {return arr;}const middle Math.fl…当然下面是使用JavaScript编写的归并排序的示例代码。归并排序是一种分治算法其基本思想是将数组分成两半进行排序然后将排序后的结果合并在一起。
function mergeSort(arr) {if (arr.length 1) {return arr;}const middle Math.floor(arr.length / 2);const left arr.slice(0, middle);const right arr.slice(middle);return merge(mergeSort(left), mergeSort(right));
}function merge(left, right) {let result [];let leftIndex 0;let rightIndex 0;while (leftIndex left.length rightIndex right.length) {if (left[leftIndex] right[rightIndex]) {result.push(left[leftIndex]);leftIndex;} else {result.push(right[rightIndex]);rightIndex;}}return result.concat(left.slice(leftIndex)).concat(right.slice(rightIndex));
}const arr [34, 7, 23, 32, 5, 62, 30];
const sortedArr mergeSort(arr);
console.log(sortedArr); // 输出[5, 7, 23, 30, 32, 34, 62]mergeSort 函数是递归函数用于不断将数组分成两半。如果数组长度为1或0那么它已经排序可以直接返回。否则将数组分成左右两半并对每一半进行递归排序。然后调用 merge 函数将两个排序后的数组合并在一起。
merge 函数负责合并两个已排序的数组。它创建一个新的结果数组然后遍历两个输入数组的元素依次选择较小的元素放入结果数组。最后任何剩余的元素都被连接到结果数组的末尾。