酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

JavaScript 实现二分法排序:递归拆分与合并数组的排序秘籍

下面是一个使用 JavaScript 实现二分法排序的脚本: ```javascript // 二分法排序 function binarySort(arr) { if(arr.length === 1) { return arr; } const middle = Math.floor(arr.length / 2); const leftArr = arr.slice(0, middle); const rightArr = arr.slice(middle); return merge(binarySort(leftArr), binarySort(rightArr)); } // 合并两个已排序的数组 function merge(leftArr, rightArr) { const mergedArr = []; let leftIndex = 0; let rightIndex = 0; while(leftIndex < leftArr.length && rightIndex < rightArr.length) { if(leftArr[leftIndex] < rightArr[rightIndex]) { mergedArr.push(leftArr[leftIndex]); leftIndex++; } else { mergedArr.push(rightArr[rightIndex]); rightIndex++; } } return mergedArr.concat(leftArr.slice(leftIndex)).concat(rightArr.slice(rightIndex)); } // 示例用法 const arr = [5, 3, 8, 4, 2, 1]; const sortedArr = binarySort(arr); console.log(sortedArr); ``` 这段脚本使用了递归的方式实现二分法排序。首先将数组不断拆分成两个子数组,直到数组长度为 1。然后再将两个有序的子数组合并成一个有序的数组。最终返回排序完成的数组。 ######[AI写代码神器 | 981点数解答 | 2024-03-12 16:53:10]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]