知识大全 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数组排序函数

PHP数组排序函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Artic

知识大全 PHP数组排序函数合集 以及它们之间的联系分析

PHP数组排序函数合集以及它们之间的联系分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下边

知识大全 PHP实现常见排序

PHP实现常见排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!//插入排序(一维数组)funct

知识大全 数据结构考研分类复习真题 第十章 排序[54]

  .请写出应填入下列叙述中( )内的正确答案【上海大学一(分)】  排序有各种方法如插入排序快速排序堆排序等  设一数组中原有数据如下下面是一组由不同排序方法进行一遍排序后的结果  ()排

知识大全 C#数组排序与对象大小比较

C#数组排序与对象大小比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 对象数组根据某属性列的灵活排序

  在工作中经常会遇到对象数组根据某个属性进行排序的问题这里介绍一个方法 以汽车为例publicclassCar:  privateintweight;  publici

知识大全 DirectInfo.GetFiles返回数组的默认排序

DirectInfo.GetFiles返回数组的默认排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 分析Java集合框架及数组的排序

分析Java集合框架及数组的排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 交换排序之堆排序

堆排序   堆的定义n个元素的序列kk…kn)当且仅当满足以下关系时称之为堆    若将和序列kk…kn)对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二

知识大全 排序 - 交换排序 - 快速排序 (一)

  快速排序(QuickSort)  算法思想  快速排序是CRAHoare于年提出的一种划分交换排序它采用了一种分治的策略通常称其为分治法(Divideand  ConquerMethod)  ()