#前言之前简单介绍了流程控制,函数,数组等。有兴趣的可以看看。PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数PHP入门之数组接下来介绍一下排序,排序是将一组数据,依指定的顺序进行排列的过程。常用的排序方法有冒泡法,选择排序法,插入排序法。#冒泡排序法思想:它重复走过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把它们交换过来,直到没有需要交换的为止。代码案例:
<?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 )#选择排序法思想:假设第一个为最小(大)元素,依次比较,如果错误,交换顺序,找到未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。代码案例:
<?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个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。代码案例:
<?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 )#小结简单介绍了一下常用的三种排序方法,希望对大家有所帮助。