再复习PHP的排序
2013-04-15 09:41
471 查看
早上起来,花了点时间写了一下PHP的冒泡排序和快速排序,作为对以前知识的复习。
冒泡排序:
快速排序:
快速排序还有几个变种,例如:随机化快速排序,平衡快速排序,外部快速排序,三路基数快速排序,在今后的日子里,慢慢研究它们。
冒泡排序:
<? function bubble_sort($array) { $size = count($array); if ($size <= 1) { return $array; } for ($i=0; $i<$size; $i++) { // 开始冒泡,从末尾开始,小的元素浮上来 for ($j=$size-1; $j>$i; $j--) { if ($array[$j] < $array[$j-1]) { $temp = $array[$j]; $array[$j] = $array[$j-1]; $array[$j-1] = $temp; } } } return $array; } $array = array(10, 1, 4, 6, 8, 2, 333, 5, 65, 90); print_r(bubble_sort($array));
快速排序:
<?php function quick_sort($array) { $size = count($array); if ($size <= 1) { return $array; } // 首元素作为比较对象 $key = $array[0]; $left = array(); $right = array(); // 小的放左边, 大的放右边 for ($i=1; $i<$size; $i++) { if ($array[$i] < $key) { $left[] = $array[$i]; } else { $right[] = $array[$i]; } } // 递归处理左边和右边 $left = quick_sort($left); $right = quick_sort($right); // 归并 $array = array_merge($left, array($key), $right); return $array; } $array = array(10, 1, 4, 6, 8, 2, 333, 5, 65, 90); pr(quick_sort($array));
快速排序还有几个变种,例如:随机化快速排序,平衡快速排序,外部快速排序,三路基数快速排序,在今后的日子里,慢慢研究它们。
相关文章推荐
- 数据结构复习笔记:使用PHP实现内排序之冒泡排序和简单选择排序
- 三复习PHP的排序
- php中用户自定义排序
- PHP基于双向链表与排序操作实现的会员排名功能示例
- PHP 二维数组根据某个字段排序
- PHP之10个整数,从小到大排序,输出排序结果
- PHP二维数组指定字段排序
- PHP数组的排序函数
- 自学PHP的笔记(六)注释标记数组排序
- PHP基础复习
- php数组指定字段排序
- PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析(转)
- PHP排序函数实例集绵usort uksort uasort
- php组合排序简单实现方法
- php对数组排序实现代码
- Php复习(3)
- PHP无限级分类排序输出以及分级缩进思路以及解决方案[修正]
- 复习快速排序
- 七大排序问题之归并排序(PHP版)
- PHP中数组的三种排序方法分享