几个常见的排序算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个常见的排序算法相关的知识,希望对你有一定的参考价值。
1.快速排序
快速排序使用的是分而治之的方法,步骤:
- 把数列的第一个数作为基准
- 走访数组的每一个数,将小于基准的数放到基准的左边,大于或等于的就放在右边
- 将上一步得到的两个数组进行相同的处理
- 不断地重复第三步
- 最终的递归结束条件是数列长度小于或等于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 }
以上是关于几个常见的排序算法的主要内容,如果未能解决你的问题,请参考以下文章