首页 > 编程语言 > 详细

JavaScript 常用的排序算法:冒泡排序与快速排序

时间:2019-03-26 20:34:07      阅读:157      评论:0      收藏:0      [点我收藏+]

冒泡排序

function bubbleSort(array) {
    for (let i = 0; i < array.length; i++)
        for (let j = 0; j < array.length - i - 1; j++)
            if (array[j] > array[j + 1]) {
                [array[j], array[j + 1]] = [array[j + 1], array[j]]; // 交换数据
            }
    return array;
}

  冒泡排序的原理:

  • 在第一轮比较中,找出最大值,放在数列最后。
  • 在第二轮比较中,找出(除去最后一位的)最大值,放在数列最后。
  • 一直比较到最后一个数,即可得到一个从小到大排序的数列。

快速排序

function quickSort(array) {
    if (array.length <= 1) {
        return array;
    } else {
        let left = [], right = [], m = Math.floor(array.length / 2); // 中间值的坐标
        let mid = array.splice(m, 1)[0]; // 中间值
        for (let i = 0; i < array.length; i ++) {
            if (array[i] < mid) {
                left.push(array[i]);
            } else {
                right.push(array[i]);
            }
        }
        return [quickSort(left), mid, quickSort(right)].flat();
    }
}

  快速排序的原理:

  • 快排的本质是递归。
  • 在第一轮比较中,首先取出中间值,然后把中间值与剩下的数字比较,比中间值小的数字放在数组 left 中,反之放在数组 right 中。
  • 再分别递归 leftright

JavaScript 常用的排序算法:冒泡排序与快速排序

原文:https://www.cnblogs.com/zhaoziwei/p/10601798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!