下面是一个使用 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。然后再将两个有序的子数组合并成一个有序的数组。最终返回排序完成的数组。 [2024-03-12 16:53:10 | AI写代码神器 | 981点数解答]