摘要:思想快速排序的思想很简单,整个排序过程只需要三步在数据集之中,找一个基准点建立两个数组,分别存储左边和右边的数组利用递归进行下次比较实现如果数组只有一个数,就直接返回找到中间数的索引值,如果是浮点数,则向下取整找到中间数的值
思想
"快速排序"的思想很简单,整个排序过程只需要三步:
(1)在数据集之中,找一个基准点
(2)建立两个数组,分别存储左边和右边的数组
(3)利用递归进行下次比较
JS实现var needSortArr = [12, 23, 45, 11, 2, 55, 12, 1]; function quickSort (arr) { if (arr.length <= 1) { return arr; //如果数组只有一个数,就直接返回; } var num = Math.floor(arr.length / 2), //找到中间数的索引值,如果是浮点数,则向下取整 numberOfCenter = arr.splice(num, 1), //找到中间数的值 left = [], right = []; for(var i = 0; i < arr.length; i++) { if (arr[i] < numberOfCenter) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([numberOfCenter], quickSort(right)); } alert(quickSort(needSortArr));
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/80699.html
摘要:快速排序的核心是以基数为中心,将数组分为两个区间,小于基数的放到基数的左边,大于基数的放到基数的右边。快速排序在每次挖坑的过程中,需要个空间存储基数。而快速排序的大概需要次的处理,所以占用空间也是个。 快速排序 原理 快速排序是C.R.A.Hoare提出的一种交换排序。它采用分治的策略,所以也称其为分治排序。 实现快速排序算法的关键在于,先在数组中选一个数作为基数,接着以基数为中心将数...
摘要:快排是一种不稳定的排序算法,在经过排序后,等值的元素的相对位置可能发生改变。 声明:码字不易,转载请注明出处,欢迎文章下方讨论交流。 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督。本篇文章介绍排序算法中最常用也是面试中最容易考到的排序算法——快排,包括快排的思想和原理、java快排代码、快排的特点性能和快排的适用场景。 0、其他排序算法索引(待更) java数据结构与...
摘要:之所以把归并排序快速排序希尔排序堆排序放在一起比较,是因为它们的平均时间复杂度都为。归并排序是一种稳定的排序方法。因此,快速排序并不稳定。希尔排序思想先将整个待排序的记录序列分割成为若干子序列。 showImg(https://segmentfault.com/img/bVbvpYZ?w=900&h=250); 1. 前言 算法为王。 想学好前端,先练好内功,只有内功深厚者,前端之路才...
阅读 3482·2021-11-18 10:02
阅读 1611·2021-10-12 10:12
阅读 2989·2021-10-09 09:53
阅读 4857·2021-09-09 09:34
阅读 846·2021-09-06 15:02
阅读 2776·2021-08-05 10:02
阅读 3133·2019-08-30 15:44
阅读 3120·2019-08-28 18:04