快速排序

原理

  • 快速排序是对冒泡排序的一种改进。
  • 通过一趟排序将待排序分割成独立的两部分,其中一部分的关键字均比另一部分的关键字小,则可分别对这两部分继续进行快速排序,整个排序过程可以递归进行,以达到整个有序的目的。

快速排序从数据列中挑出一个数作为基准元素,然后循环所有数,和基准数进行比较分为左右两列,然后重复这样的步骤继续划分为左右两列。

PHP实现

/**
* @param array $arr
* @return array
*/
function quick_sort($arr)
{
    if (!is_array($arr) || empty($arr)) {
        return $arr;
    }

    $len = count($arr);
    if ($len === 1) {
        return $len;
    }

    $left = $right = [];
    for ($i = 1; $i < $len; $i++) {
         if ($arr[$i] > $ar[0]) {
             $right[] = $arr[$i];
         } else {
             $left = $arr[$i];
         }
    }

    $left = quick_sort($left);
    $right = quick_sort($right);

    return array_merge($left, [$arr[0]], $right);
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2
九霄道长

看不懂,写的不对吧

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!