首页IT科技js冒泡排序时间复杂度(js快排(JavaScript快速排序算法)- 前端面试)

js冒泡排序时间复杂度(js快排(JavaScript快速排序算法)- 前端面试)

时间2025-05-02 12:50:40分类IT科技浏览7725
导读:快速排序算法通过多次比较和交换来实现排序,其排序流程如下:...

快速排序算法通过多次比较和交换来实现排序             ,其排序流程如下:

(1) 首先设定一个分界值                    ,通过该分界值将数组分成左右两部分              。

(2) 将大于或等于分界值的数据集中到数组右边       ,小于分界值的数据集中到数组的左边                    。此时       ,左边部分中各元素都 小于分界值                    ,而右边部分中各元素都大于或等于分界值      。

(3) 然后              ,左边和右边的数据可以独立排序              。对于左侧的数组数据       ,又可以取一个分界值                    ,将该部分数据分成左右两部分              ,同样在左边放置较小值,右边放置较大值                     。右侧的数组数据也可以做类似处理      。

(4) 重复上述过程                    ,可以看出                     ,这是一个递归定义       。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序                     。当左             、右两个部分各数据排序完成后             ,整个数组的排序也就完成了             。

var arr = [9, 4, 3, 1, 6, 3, 8, 7] /** * 快速排序 * @param {array} - arr 需要排序的数组 * @returns {array} */ function quickSort (arr) { if (arr.length <= 1) return arr var arr1 = [], arr2 = [] for (var i = 1; i < arr.length; i++) { if (arr[i] < arr[0]) { arr1.push(arr[i]) } else { arr2.push(arr[i]) } } arr1 = quickSort(arr1) arr2 = quickSort(arr2) arr1.push(arr[0]) return arr1.concat(arr2) } console.log(quickSort(arr)) // [1, 3, 3, 4, 6, 7, 8, 9]

微信交流群

前端面试剑指 Offer (3群)

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
macos 热点(mac如何做热点?mac创建wifi热点方法介绍) js错误处理机制(JavaScript中的Error错误对象与自定义错误类型)