以前简单介绍了流程控制,函数,数组等。有兴趣的能够看看。
PHP入门之类型与运算符
PHP入门之流程控制
PHP入门之函数
PHP入门之数组
接下来介绍一下排序,排序是将一组数据,依指定的顺序进行排列的过程。经常使用的排序方法有冒泡法,选择排序法,插入排序法。php
思想:
它重复走过要排序的元素列,依次比较两个相邻的元素,若是顺序错误就把它们交换过来,直到没有须要交换的为止。
代码案例:html
<?php #冒泡排序 $myarr=array(4,3,9,1,6,23.5); function bubbleSort (&$myarr){ $temp=0; #N个数排序,要排N-1次。外层控制循环多少趟 for ($i=0;$i<count($myarr)-1;$i++){ #控制每一趟循环的次数。 for ($j=0;$j<count($myarr)-1-$i;$j++){ if ($myarr[$j]>$myarr[$j+1]){ $temp=$myarr[$j]; $myarr[$j]=$myarr[$j+1]; $myarr[$j+1]=$temp; } } } } bubbleSort($myarr); print_r($myarr); #打印数组 ?>
输出结果为:
Array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )web
思想:
假设第一个为最小(大)元素,依次比较,若是错误,交换顺序,找到未排序序列中找到最小(大)元素,存放到排序序列的起始位置,而后,再从剩余未排序元素中继续寻找最小(大)元素,而后放到已排序序列的末尾。以此类推,直到全部元素均排序完毕。
代码案例:数组
<?php #选择排序 $myarr=array(4,3,9,1,6,23.5); function selectionSort (&$myarr){ $temp=0; for ($i=0;$i<count($myarr)-1;$i++){ #将第一个值认为是最小的值 $minval=$myarr[$i]; #记录最小值的下标 $minindex=$i; for ($j=$i+1;$j<count($myarr);$j++){ if ($minval>$myarr[$j]){ $minval=$myarr[$j]; $minindex=$j; } } $temp=$myarr[$i]; $myarr[$i]=$myarr[$minindex]; $myarr[$minindex]=$temp; } } selectionSort($myarr); print_r($myarr); #打印数组 ?>
输出结果:
Array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )函数
思想:
插入排序就像咱们玩扑克牌,右手为乱排的,咱们一张张查看,为它找合适的位置插入到左手的有序牌中。
插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已是排好顺序的,现将第n个数插到前面已经排好的序列中,而后找到合适本身的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对全部元素进行插入,直到整个序列排为有序的过程,称为插入排序。
代码案例:code
<?php #插入排序 $myarr=array(4,3,9,1,6,23.5); function insertSort (&$myarr){ for ($i=1;$i<count($myarr);$i++){ #这是要插入的数 $insertval=$myarr[$i]; #这是和插入的数进行比较 $insertindex=$i-1; #知足条件说明咱们尚未找到合适的位置 while ($insertindex>=0 && $insertval<$myarr[$insertindex]){ $myarr[$insertindex+1]=$myarr[$insertindex]; $insertindex--; } #插入(给$insertval找到合适的位置) $myarr[$insertindex+1]=$insertval; } } insertSort($myarr); print_r($myarr); ?>
输出结果:
Array ( [0] => 1 [1] => 3 [2] => 4 [3] => 6 [4] => 9 [5] => 23.5 )htm
简单介绍了一下经常使用的三种排序方法,但愿对你们有所帮助。blog