写一个函数,将数据$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."|"; } ...
冒泡排序 【基本原理】 相邻两数依次比较,将小数放在前面,大数放在后面。第一趟结束,将最大的数放到了最后。第二趟结束,将最大的数放到了倒数第二。依次一直下去,直至最终完成排序。 冒泡排序,只需要使用两重循环实现,时间复杂度为O(n*n)。 【代码实现】 实现:两两比较,把小的数放在前面 $array[$j+1]){$temp=$array[$j];$array[$j]=$array[$j+1];$array[$j+1]=$temp;$flag = true;}}if(! $flag)//本趟排序没有值交换...
//冒泡排序 function maopao_sort($demo){ $num = count($demo); for($i=0;$ifor($j=$num-1;$j>$i;$j--){ if($demo[$j]$temp = $demo[$j]; $demo[$j]=$demo[$j-1]; $demo[$j-1]= $temp; } } } return $demo; } //插入排序 function charu_sort($demo){ $num = count($demo); for($i=1;$i$temp=$demo[$i]; $dqweizhi = $i-1;//记录当前位置 while(($dqweizhi>=0)&&($temp$demo[$dqweizhi+1] = $demo[$dqweizhi]; $dqweizhi--; } $de...
基本概念 冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1 个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,...
学习PHP时,你可能会遇到 PHP排序问题,这里将介绍 PHP排序问题的解决方法,在这里拿出来和大家分享一下。每年总是要隔三差五的看数据结构,每次总是觉得自己很多东西没有学好,唉。今天贴刚使用php实现4的排序算法,另外堆排序和归并排序没有写。插入排序、选择排序、,冒泡排序,时间复杂度貌似都是 O(N2),所以实际意义不大,在实际测试中,我对3000个数组元素进行,这三种排序算法都需要花费80秒左右,而快速排序只需要8秒,差...
冒泡算法是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。function BubbleSort($array){if (empty($array) || !is_array($array))return false;$len = count($array)-1;for($i = $len; $i > 0; $i-- ){for...
插入排序(Insertion Sort),是一种较稳定、简单直观的排序算法。插入排序的工作原理,是通过构建有序序列,对于未排序的数据,在有序序列中从后向前扫描,找到合适的位置并将其插入。插入排序,在最好情况下,时间复杂度为O(n);在最坏情况下,时间复杂度为O(n2);平均时间复杂度为O(n2)。 插入排序示例图:/*** 数据结构与算法(PHP实现) - 插入排序(Insertion Sort)。** @author 创想编程(TOPPHP.ORG)* @copyright Copyri...
冒泡排序(Bubble Sort),是一种较简单的、稳定的排序算法。冒泡排序算法步骤:比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置;对每对相邻的元素执行同样的操作,这样一趟下来,最后的元素就是最大的;除了已得出来的最大元素,把剩余的元素重复前面步骤,直到没有元素再需要比较为止,这样排序就完成了。冒泡算法,在最好情况下,时间复杂度为O(n);在最坏情况下,时间复杂度为O(n2);平均时间复杂度为O(n2)。 PH...
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)); ?>http://www.bkjia.com/PHPjc/478709.htmlwww.bkjia.comtrueht...
在我们刚学编程就知道各种排序算法,现在我们再次看看php 冒泡算法在实际应用中用法吧,有需要的朋友简单的参考一下。 代码如下header('Content-Type: text/html; charset=utf-8'); // 简单冒泡算法 0 1 2 3 4 $a = array(5,4,3,2,1); //5 echo "比较54321 "; function mp($a){ //传值 要是数组//i=1 ifor($i=0;$i/* j=3 j* 这里为什么要-2呢 * 因为数组是从0开始的 所以要-1 * 然后 一会要比较后一位 和倒数第二位 ...
在这篇文章里,我将向大家介绍用PHP写的排序算法的测试。 以下是14种排序算法: 快速排序计数排序梳排序堆排序归并排序希尔排序选择排序插入排序地精排序联合冒泡排序鸡尾酒排序冒泡排序奇偶排序使用标志的冒泡排序算法不是按字母排序,而是按照它们进行8千个元素排序时整体速度递减来排序。 以下是用到的数组的大小: 1100200400600800100050001000015000200002500030000每次测量都用不同大小的数组,然后传入排序函数。 第一种情...
本文章来给大家总结几个不错的php排序算法,希望这些算法对各位同学会有所帮助哦。 代码如下1.冒泡算法,排序算法,由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序 $array = array(a,f,c,b,e,h,j,i,g); function maopao_fun($array){ if($len <= 1) { return $arr; } $count = count($array); for($i=0;$i<$count;$i++){ for($j=$count-1;$j>$i;$j--){ if($array[$j] > $array[$j-1]){ $tmp = $a...
在学校时我们老师告诉我们程序数据排序会有很多算法,其实冒泡算法是我们常用的一种排序算法了,下面我来用php实现冒泡排序,下面记录一下。例1代码如下 /*** 冒泡排序 (一维数组)* 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止* 设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡扫描违反原则的轻气泡,就使其向上"漂浮".如此反复进行.*...
一、快速排序 1.简介快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。2.步骤从数列中挑出一个...
插入排序(Insertion Sort),选择排序(Selection Sort),冒泡排序和快速排序是我们经常会用到的排序算法。下面是这几种算法的基本思想和相对应的PHP实现代码。插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 //插入排序(一维数组) function insert_sort($arr){$count = count($arr);for($i=1; $i<$count; $i++){$tmp = $ar...