几个常见的排序算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个常见的排序算法相关的知识,希望对你有一定的参考价值。

1.快速排序

技术分享

快速排序使用的是分而治之的方法,步骤:

  1. 把数列的第一个数作为基准
  2. 走访数组的每一个数,将小于基准的数放到基准的左边,大于或等于的就放在右边
  3. 将上一步得到的两个数组进行相同的处理
  4. 不断地重复第三步
  5. 最终的递归结束条件是数列长度小于或等于1

具体代码实现:

 1 function sort($num)
 2 {
 3     /**
 4      * 递归出口,当数组不断分小时,有可能会出现左右数组里某一个的元素个数为0,所以是‘<=‘,而非‘==‘
 5      */
 6     if (count($num) <= 1) return $num;
 7 
 8     /**
 9      * 初始化左数组,基准元素,右数组
10      */
11     $leftArr = array();
12     $base = $num[0];
13     $rightArr = array();
14 
15     /**
16      * 在处理元素前先把数组第一个元素(基准)去掉,不需要对它处理
17      */
18     array_shift($num);
19     foreach ($num as $value) {
20         if ($value < $base) {
21             $leftArr[] = $value;
22         } else {
23             $rightArr[] = $value;
24         }
25     }
26 
27     $leftArr = sort($leftArr);
28     $rightArr = sort($rightArr);
29 
30     return array_merge($leftArr,array($base),$rightArr);//拼装
31 }

 

以上是关于几个常见的排序算法的主要内容,如果未能解决你的问题,请参考以下文章

面试中的常见算法,你了解几个?

知识分享:程序员必备的七种常见排序算法和搜索算法

python-简简单单来学习几个常见的排序算法part1

七种常见经典排序算法总结(C++)

常见的几个算法

快速排序-递归实现