归并排序
归并排序是一种高效的排序算法,它的时间复杂度为O(nlogn)。我们可以用递归的方式来实现归并排序。
首先我们需要将数组分成两份,然后分别对这两份进行递归排序。当只剩下一个元素时,返回该元素。接着将两个已排序的数组归并成一个数组,直到归并完整个数组。
下面我们用js代码来实现归并排序:
function mergeSort(arr) { if (arr.length < 2) return arr; var middle = Math.floor(arr.length / 2); var left = arr.slice(0, middle); var right = arr.slice(middle); return merge(mergeSort(left), mergeSort(right)); } function merge(left, right) { var result = []; while (left.length