首页 > 代码库 > 几个常见的排序算法
几个常见的排序算法
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 }
几个常见的排序算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。