javascript 快排_javascript 快速排序:代码示例

ThinkPhpchengxu

温馨提示:这篇文章已超过289天没有更新,请注意相关的内容是否还可用!

javascript 快排_javascript 快速排序:代码示例

快速排序是一种常用的排序算法,它通过分治的思想将一个大问题分解为若干小问题来解决。具体来说,快速排序的思路是选择一个基准元素,然后将待排序的序列分割成两部分,一部分小于基准元素,一部分大于基准元素,再对这两部分递归地进行快速排序,最终得到有序的序列。

下面是一个使用JavaScript实现的快速排序的示例代码:

function quickSort(arr) {

if (arr.length <= 1) {

return arr;

}

var pivotIndex = Math.floor(arr.length / 2);

var pivot = arr.splice(pivotIndex, 1)[0];

var left = [];

var right = [];

for (var i = 0; i < arr.length; i++) {

if (arr[i] < pivot) {

left.push(arr[i]);

} else {

right.push(arr[i]);

}

}

return quickSort(left).concat([pivot], quickSort(right));

}

var arr = [5, 3, 8, 4, 2, 7, 1, 6];

var sortedArr = quickSort(arr);

console.log(sortedArr);

在这个示例代码中,我们定义了一个名为`quickSort`的函数,它接受一个待排序的数组作为参数。我们判断数组的长度是否小于等于1,如果是,则直接返回该数组,因为长度小于等于1的数组已经是有序的了。

接下来,我们选择一个基准元素,这里我们选择数组中间的元素作为基准。然后,我们使用`splice`方法将基准元素从数组中移除,并将其保存在变量`pivot`中。

接着,我们使用两个空数组`left`和`right`来分别保存比基准元素小和大的元素。遍历数组中的每个元素,如果元素小于基准元素,则将其放入`left`数组中,否则放入`right`数组中。

我们使用递归的方式对`left`和`right`数组进行快速排序,并通过`concat`方法将排序后的`left`数组、基准元素和排序后的`right`数组连接起来,得到最终的有序数组。

我们使用一个示例数组`arr`进行测试,将排序后的结果打印到控制台上。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码