排序算法学习,插入排序,php代码实现。思路:按照从小到大排序,新插入的数据与之前的比较一下,如果新插入的数据比上一个小就互换顺序。<?php //排序--插入 $data = array(10,9,8,7,6,5,4,3,2,1);fun($data);function fun($data){echo implode(,,$data).;$count = count($data);for($i=1;$i<$count;$i++){echo 第.($i+1).个数插入:;for($j=$i;$j>0;$j--){if($data[$j]<$data[$j-1]){echo $data[$j].<==>.$data[$j-1].;$temp = ...
下面分享一些最常见的算法,用PHP如何实现。1、冒泡排序function bubble_sort($arr) { $n=count($arr); for($i=0;$i<$n-1;$i++){ for($j=$i+1;$j<$n;$j++) { if($arr[$j]<$arr[$i]) { $temp=$arr[$i]; $arr[$i]=$arr[$j]; $arr[$j]=$temp; } } } return $arr;} 2、归并排序function Merge(&$arr, $left, $mid, $right) { $i = $le...
<?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(...
$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($...
//冒泡排序函数 //本函数使用引用,避免内存消耗//整理: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; } } ...
//选择排序功能函数 //使用引用,减少内存消耗//整理: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]; ...
/*** 递归法实现的快速排序*/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 =...
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_...
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 ...
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实现各种排序算法 // 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...
代码如下:$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 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描述冒泡排序算法,对象可以是一个数组 代码如下://冒泡排序(数组排序)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描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑...