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]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)366
- Python 实现:四位数重组求最大最小数差值(字节豆包 | 144点数解答 | 2026-02-01 12:49:54)38
- Python 代码求解:小明当选 Y 国总统至少需多少选民支持?(字节豆包 | 207点数解答 | 2026-02-01 12:51:14)44
- 拍卖干草:如何定价才能收益最大化?(DeepSeek | 1171点数解答 | 2026-02-23 21:10:09)36
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)26
- 轻松补全代码:实现三个数组合并的秘诀(GPT | 44点数解答 | 2024-05-20 22:24:51)311
- 不使用冒泡排序,用归并排序降序合并 bina 与 binb 并输出结果!(GPT | 48点数解答 | 2024-06-01 16:26:38)337
- C++:bindata 类实现文件二进制整数读取、排序与归并合并输出(GPT | 1814点数解答 | 2024-06-01 16:28:14)320
- C++:bindata 类实现文件二进制读取、排序与归并合并输出(GPT | 811点数解答 | 2024-06-01 16:29:51)305
- Python 实现:带边界处理与验证的任意基数数字转换递归程序(字节豆包 | 198点数解答 | 2024-11-21 14:20:25)449
- Python 递归函数实现:将数字转换为指定基数的输出(百度文心 | 499点数解答 | 2024-11-22 09:58:55)350
- 编程模拟:偶数张牌经 k 次洗牌后第 p 张牌编号求解(DeepSeek | 126点数解答 | 2026-01-05 12:15:30)40