【PHP兑现常见排序算法】教程文章相关的互联网学习教程文章

PHP实现各种排序算法

<?php // 冒泡排序 function BubbleSort($arr) {// 获得数组总长度$num = count($arr);// 正向遍历数组for ($i = 1; $i < $num; $i++) {// 反向遍历for ($j = $num - 1; $j >= $i ; $j--) {// 相邻两个数比较if ($arr[$j] < $arr[$j-1]) {// 暂存较小的数$iTemp = $arr[$j-1];// 把较大的放前面$arr[$j-1] = $arr[$j];// 较小的放后面$arr[$j] = $iTemp;}}}return $arr; }// 交换法排序 function ExchangeSort($arr){$num = count(...

php将地区分类排序的算法

$array = array( 0=>array("","河北"), 1=>array("","北京"), 2=>array(0,"保定"), 3=>array(1,"海淀"), 4=>array(3,"中关村"), 5=>array(2,"涿州"));?>处理后返回如下结果: 河北 -保定 --涿州 北京 -海淀 --中关村 算法代码: function typeArray($array){ $con = null; foreach ($array as $k=>$v){ $na[$k] = is_numeric($v[0]) ? $na[$v[0]].$k."|" : $k."|"; } ...

具有通用性二维数组排序算法函数【图】

转载地址: http://blog.qita.in/?post=468 <?php//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order=0) {if (!is_array($arr)) { return false;}$keysvalue = array();foreach($arr as $key => $val) { $keysvalue[$key] = $val[$keys];}if($order == 0){ asort($keysvalue);}else { arsort($keysvalue);}reset($keysvalue);foreach($...

php冒泡排序算法实现代码

//冒泡排序函数 //本函数使用引用,避免内存消耗//整理:bbs.it-home.orgfunction &bubble(&$arr){ $count=count($arr); if($count>1){ for($i=0;$i for($j=$count-1;$j>=$i;$j--){ if($arr[$j-1]>$arr[$j]){ $temp=$arr[$j-1]; $arr[$j-1]=$arr[$j]; $arr[$j]=$temp; } } ...

php选择排序算法实现代码

//选择排序功能函数 //使用引用,减少内存消耗//整理:bbs.it-home.orgfunction &select(&$arr){ $count=count($arr); if($count>1){ for($i=0;$i $k=$i; for($j=$i+1;$j if($arr[$j] $k=$j; } } if($k!=$i){ $tmp=$arr[$k]; $arr[$k]=$arr[$i]; ...

php快速排序算法(递归排序与迭代排序)的例子

/*** 递归法实现的快速排序*/function quicksort($seq){$k = $seq[0];$x = array();$y = array();for($i=1; $i< $_size; $i++) {if($seq[$i] <= $k) {$x[] = $seq[$i];} else {$y[] = $seq[$i];}}$x = quicksort($x);$y = quicksort($y);return array_merge($x, array($k), $y);} else {return $seq;}}2、迭代法:/*** 迭代法的快速排序*/function quicksortx(&$seq){$stack = array($seq);$sort = array();while ($stack) {$arr =...

[讨论]php排序系列的函数内部的C实现是用了哪种排序算法?

ext/standard/php_array.hhttps://github.com/php/php-src/blob/master/ext/standard/php_array.h #ifndef PHP_ARRAY_H#define PHP_ARRAY_HPHP_MINIT_FUNCTION(array);PHP_MSHUTDOWN_FUNCTION(array);PHP_FUNCTION(ksort);PHP_FUNCTION(krsort);PHP_FUNCTION(natsort);PHP_FUNCTION(natcasesort);PHP_FUNCTION(asort);PHP_FUNCTION(arsort);PHP_FUNCTION(sort);PHP_FUNCTION(rsort);PHP_FUNCTION(usort);PHP_FUNCTION(uasort);PHP_...

php快速排序的算法

function qsort(&$arr){ _quick_sort($arr, 0, count($arr) - 1);} /** * 采用递归算法的快速排序。 * * @param array $arr 要排序的数组 * @param int $low 最低的排序子段 * @param int $high 最高的排序字段 */function _quick_sort(&$arr, $low, $high){ $low_data = $arr[$low]; $prev_low = $low; $prev_high = $high; while ($low < $high) { while ($arr[$high] >= $low_data && $low ...

PHP实现快速排序算法

function quicksort($seq) { if (count($seq) > 1) { $k = $seq[0]; $x = array(); $y = array(); for ($i=1; $i if ($seq[$i] $x[] = $seq[$i]; } else { $y[] = $seq[$i]; } } $x = quicksort($x); $y = quicksort($y); return array_merge($x, array($k), $y); } else { return $seq; }} $arr = array(12,2,16,30,8,28,4,10,20,6,18);print_r(quicksort($arr));?>...

PHP各种排序算法实现代码_PHP教程

代码如下:// 功能: PHP实现各种排序算法 // Author: windlike // Datetime: 2007-06-09 // 冒泡排序 function BubbleSort($arr){ $num = count($arr); for($i=1;$ifor($j=$num-1;$j>=$i;$j--){ if($arr[$j]$iTemp = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j] = $iTemp; } } } return $arr; } // 交换法排序 function ExchangeSort($arr){ $num = count($arr); for($i=0;$ifor($j=$i+1;$jif($arr[$j]$iTemp = $arr[$i]; $arr[$i...

PHP冒泡排序算法代码详细解读_PHP教程

代码如下:$arr = array(345,4,17,6,52,16,58,69,32,8,234); $n = count($arr); for($i=1;$i//其中的为什么$n-1是因为数组是从0开始计算的 //接下来是第一次内循环 for($j=$n-1;$j>=$i;$j--) { //如果$arr[10]//temp = $arr[9]; if($arr[$j]//$temp 暂时先把小的值放起来 $temp = $arr[$j-1]; //这个时候开始要交换位置了 $arr[$j-1] = $arr[$j]; //$arr[9] = $arr[10]的值 $arr[$j] = $temp; //$arry[10]的值等于$arr[9]的值 //这个...

php排序算法(冒泡排序,快速排序)_PHP教程

冒泡排序实现原理 ① 首先将所有待排序的数字放入工作列表中。② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。 ③ 重复步骤②,直至再也不能交换。 代码实现 代码如下:<?php function bubbingSort(array $array) { for($i=0, $len=count($array)-1; $i<$len; ++$i) { for($j=$len; $j>$i; --$j) { if($array[$j] < $array[$j-1]...

PHP冒泡排序二分查找顺序查找二维数组排序算法函数的详解_PHP教程

数据结构很重要,算法+数据结构+文档=程序使用PHP描述冒泡排序算法,对象可以是一个数组 代码如下://冒泡排序(数组排序)function bubble_sort($array) {$count = count($array);if ($count return false;for($i=0; $ifor($j=$count-1; $j>$i; $j–){if ($array[$j] $tmp = $array[$j];$array[$j] = $array[$j-1];$array[$j-1] = $tmp;}}}return $array; }使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑...

php地区分类排序算法_PHP教程

写一个函数,将数据$array = array( 0=>array("","河北"), 1=>array("","北京"), 2=>array(0,"保定"), 3=>array(1,"海淀"), 4=>array(3,"中关村"), 5=>array(2,"涿州"));处理后返回如下:河北-保定--涿州北京-海淀--中关村 代码如下:function typeArray($array){ $con = null; foreach ($array as $k=>$v){ $na[$k] = is_numeric($v[0]) ? $na[$v[0]].$k."|" : $k."|"; } ...

PHP实现数据结构中的排序算法_PHP教程

冒泡排序 【基本原理】 相邻两数依次比较,将小数放在前面,大数放在后面。第一趟结束,将最大的数放到了最后。第二趟结束,将最大的数放到了倒数第二。依次一直下去,直至最终完成排序。 冒泡排序,只需要使用两重循环实现,时间复杂度为O(n*n)。 【代码实现】 实现:两两比较,把小的数放在前面 $array[$j+1]){$temp=$array[$j];$array[$j]=$array[$j+1];$array[$j+1]=$temp;$flag = true;}}if(! $flag)//本趟排序没有值交换...