知识大全 php关联数组排序(快速排序)
Posted 知
篇首语:认识到自己无知是知识进步的重要阶段。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 php关联数组排序(快速排序)相关的知识,希望对你有一定的参考价值。
使用环境和条件
有这样一种情况 php里面的关联数组 如果下面这样的数组数据
[php]
$array = array (
array (
name => xiao
age =>
)
array (
name => wang
age =>
)
array (
name => chen
age =>
)
)
我们要对数组针对age字段进行排序 php自带的函数 无论是那种sort 显然都不能满足我们的需求 因此我们可以自己写一个快速排序代码 很快的实现我们的要求
注意情况
php里面是没有指针存在的 所以当想要引用传递的时候 我们不能跟C代码一样 直接这样写quicksort(int *A int begin int end) 而是要使用php的&运算符 将数组的地址传递跟快速排序函数 这样就能在php里实现引用传递而不是值传递
快速排序代码
[php]
QuickSortProcess ( $array count ( $array ) )
print_r ( $array )
/**
* Description:快速排序中获取中枢点的位置
*/
function QuickPartition(&$array $left $right)
// 基准定义
$stand = $array [$left];
// 从区间两端向中间扫描 直到$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];
// 获取中枢点位置
$array [$left] = $stand;
return $left;
/**
* Description:快速排序主流程函数
*/
function QuickSortProcess(&$array $begin $end)
// 变量定义
$pivot = NULL; // 中枢点
if ($begin < $end)
$pivot = QuickPartition ( $array $begin $end )
QuickSortProcess ( $array $begin $pivot )
QuickSortProcess ( $array $pivot + $end )
cha138/Article/program/PHP/201311/20808
相关参考
PHP数组排序函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Artic
PHP数组排序函数合集以及它们之间的联系分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 下边
PHP实现常见排序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!//插入排序(一维数组)funct
.请写出应填入下列叙述中( )内的正确答案【上海大学一(分)】 排序有各种方法如插入排序快速排序堆排序等 设一数组中原有数据如下下面是一组由不同排序方法进行一遍排序后的结果 ()排
C#数组排序与对象大小比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
在工作中经常会遇到对象数组根据某个属性进行排序的问题这里介绍一个方法 以汽车为例publicclassCar: privateintweight; publici
知识大全 DirectInfo.GetFiles返回数组的默认排序
DirectInfo.GetFiles返回数组的默认排序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
分析Java集合框架及数组的排序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
堆排序 堆的定义n个元素的序列kk…kn)当且仅当满足以下关系时称之为堆 若将和序列kk…kn)对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二
快速排序(QuickSort) 算法思想 快速排序是CRAHoare于年提出的一种划分交换排序它采用了一种分治的策略通常称其为分治法(Divideand ConquerMethod) ()