首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php联系关系数组排序(快速排序)

2012-10-10 
php关联数组排序(快速排序)起因好吧,我承认最近我跟快速排序干上了,各种测试编写快速排序程序,现在就用php

php关联数组排序(快速排序)
起因

好吧,我承认最近我跟快速排序干上了,各种测试编写快速排序程序,现在就用php实现快速排序,跟之前文章不同,这次php的快排是能解决实际需要的。


使用环境和条件有这样一种情况,php里面的关联数组,如果下面这样的数组数据:
QuickSortProcess ( $array, 0, count ( $array ) - 1 );print_r ( $array );/** * Description:快速排序中获取中枢点的位置 */function QuickPartition(&$array, $left, $right) {// 1.基准定义$stand = $array [$left];// 2.从区间两端向中间扫描,直到$left == $right为止while ( $left < $right ) {while ( $left < $right && $array [$right] ['age'] >= $stand ['age'] ) {$right --;}if ($left < $right) {$array [$left ++] = $array [$right];}while ( $left < $right && $array [$left] ['age'] <= $stand ['age'] ) {$left ++;}if ($left < $right) {$array [$right --] = $array [$left];}}// 3.获取中枢点位置$array [$left] = $stand;return $left;}/** * Description:快速排序主流程函数 */function QuickSortProcess(&$array, $begin, $end) {// 1.变量定义$pivot = NULL; // 中枢点if ($begin < $end) {$pivot = QuickPartition ( $array, $begin, $end );QuickSortProcess ( $array, $begin, $pivot - 1 );QuickSortProcess ( $array, $pivot + 1, $end );}}

我在项目上就用到了这个快速排序,挺开心的,不枉这个10月1假期花了N天AC快速排序的c代码
1楼dickeylth昨天 14:30
这种问题可以查阅下php中的usort,写自定义的排序回调函数就行了。参见:http://www.php.net/manual/zh/function.usort.php
Re: zinss26914昨天 15:27
回复dickeylthn查了一下您给的链接,确实是这样,可以省不少代码量,多谢多谢,哈哈,其实也想在实际项目里用下自己写的排序算法,总是调用php的自带函数,感觉自己都快不会写程序了

热点排行