php常用算法整理
2014-02-26 18:06
253 查看
快速排序(Quicksort)是对冒泡排序的一种改进。由C.
A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
选择排序(Selection
Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
冒泡排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。
A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
function quickSort($arr) { if (count($arr) > 1) { $k = $arr[0]; $x = array(); $y = array(); $_size = count($arr); for ($i=1; $i<$_size; $i++) { if ($arr[$i] <= $k) { $x[] = $arr[$i]; } else { $y[] = $arr[$i]; } } $x = quickSort($x); $y = quickSort($y); return array_merge($x, array($k), $y); } else { return $arr; } }
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
//插入排序(一维数组) function insert_sort($arr){ $count = count($arr); for($i=1; $i<$count; $i++){ $tmp = $arr[$i]; $j = $i - 1; while($arr[$j] > $tmp){ $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; $j--; } } return $arr; }
选择排序(Selection
Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
//选择排序(一维数组) function select_sort($arr){ $count = count($arr); for($i=0; $i<$count; $i++){ $k = $i; for($j=$i+1; $j<$count; $j++){ if ($arr[$k] > $arr[$j]) $k = $j; if ($k != $i){ $tmp = $arr[$i]; $arr[$i] = $arr[$k]; $arr[$k] = $tmp; } } } return $arr; }
冒泡排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。
//冒泡排序(一维数组) function bubble_sort($array){ $count = count($array); if ($count <= 0) return false; for($i=0; $i<$count; $i++){ for($j=$count-1; $j>$i; $j--){ if ($array[$j] < $array[$j-1]){ $tmp = $array[$j]; $array[$j] = $array[$j-1]; $array[$j-1] = $tmp; } } } return $array; }
相关文章推荐
- php常用算法总结
- 十个常用PHP类库整理
- PHP中常用的数组操作方法笔记整理
- 重拾PHP--常用算法
- PHP 常用时间函数资料整理
- PHP新特性DateTime常用方法整理
- PHP常用数组函数整理
- 数据挖掘常用算法整理
- PHP面试常用算法
- php计算两个整数的最大公约数常用算法小结
- PHP面向对象常用关键字整理
- 常用算法整理:链表相关
- PHP几个算法整理-PHP冒泡-PHP二分法-PHP求素数-PHP乘法表
- PHP&Javascript&CSS&jQuery常用知识大全(整理+原创)
- 常用算法整理:二分查找
- PHP 常用字符串,数组处理函数整理(一)
- 最常用的PHP正则表达式收集整理
- 深度学习常用优化算法总结整理
- PHP 5.0 到 7.1 常用语法糖(个人整理)
- 常用算法整理:动态规划中篇