首先什么是排序呢???呵呵
顾名思义,所谓排序就是“将一组数组,按照指定的顺序进行排列的过程”;
php中常用的排序有:
1、冒泡排序法
2、选择排序法
3、插入排序法
4、快速排序法
下面呢,,将php中常见的排序方法的code总结贴出来(是code给了我前行的勇气和力量,呵呵 开个玩笑!!!)
==================================================================
1.冒泡排序法(bubbleSort):
<?php
//简单的写法
/* $arr=array(3,5,78,90,20,-1,100,55,60);
$temp=0;
//外层循环
for($i=0;$i<count($arr)-1;$i++){
for($j=0;$j<count($arr)-1-$i;$j++){
//说明前面的数比后面的数大,就要交换
if($arr[$j]>$arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
print_r($arr); */
//我们将冒泡排序法封装成一个函数,便于以后的使用
function bubbleSort(&$myarr){
$temp=0;
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;
}
}
}
}
$arr=array(3,5,78,90,20,-1,100,55,60);
bubbleSort($arr);
print_r($arr);
?>
其运行结果为:Array( [0] => -1 [1] => 3 [2] => 5 [3] => 20 [4] => 55 [5] => 60 [6] => 78 [7] => 90 [8] => 100)
==================================================================
2.选择排序法(selectSort):
<?php
function selectSort(&$arr){
$temp=0;
for($i=0;$i<count($arr)-1;$i++){
//我们假设$i就是最小的数
$minVal=$arr[$i];
//记录我们认为最小的数的下标值
$minIndex=$i;
for($j=$i+1;$j<count($arr);$j++){
//说明我们的假设有错误,$i不是最小的数,即
if($minVal>$arr[$j]){
$minVal=$arr[$j];
$minIndex=$j;
}
}
//最后进行交换
$temp=$arr[$i];
$arr[$i]=$arr[$minIndex];
$arr[$minIndex]=$temp;
}
}
$arr=array(20,10,-5,60,80,89,99,96,100,-30);
selectSort($arr);
print_r($arr);
?>
其运行结果为:Array ( [0] => -30 [1] => -5 [2] => 10 [3] => 20 [4] => 60 [5] => 80 [6] => 89 [7] => 96 [8] => 99 [9] => 100 )
3.插入排序法(insertSort):
<?php
function insertSort(&$arr){
//先默认下标为 0 ,这个数已经是有序的
for($i=1;$i<count($arr);$i++){
//$insertVal是准备插入的数
$insertVal=$arr[$i];
//准备先和$insertIndex比较
$insertIndex=$i-1;
//如果这个条件满足,说明我们还没有找到适当的位置
while ($insertIndex>=0 && $insertVal<$arr[$insertIndex]){
//把数往后移
$arr[$insertIndex+1]=$arr[$insertIndex];
$insertIndex--;
}
//真正的插入(这时就给$insertVal找到适当位置)
$arr[$insertIndex+1]=$insertVal;
}
}
$arr=array(20,60,89,78,-2,90,100,-30,300,-34.5);
insertSort($arr);
print_r($arr);
?>
其运行结果为:Array ( [0] => -34.5 [1] => -30 [2] => -2 [3] => 20 [4] => 60 [5] => 78 [6] => 89 [7] => 90 [8] => 100 [9] => 300 )
4.快速排序法(quickSort):
<?php
$arr=array(32,67,89,90,200,100,-22,-66,35,-10);
function quickSort($left,$right,&$arr){
$l=$left;
$r=$right;
$pivot=$arr[($left+$right)/2];
$temp=0;
while ($l<$r){
while ($arr[$l]<$pivot) $l++;
while ($arr[$r]>$pivot) $r--;
if($l>=$r) break;
$temp=$arr[$l];
$arr[$l]=$arr[$r];
$arr[$r]=$temp;
if($arr[$l]==$pivot) --$r;
if($arr[$r]==$pivot) ++$l;
}
if($l==$r){
$l++;
$r--;
}
if($left<$r) quickSort($left, $r, $arr);
if($right>$l) quickSort($l, $right, $arr);
}
quickSort(0, count($arr)-1, $arr);
print_r($arr);
?>
其运行结果为:Array ( [0] => -66 [1] => -22 [2] => -10 [3] => 32 [4] => 35 [5] => 67 [6] => 89 [7] => 90 [8] => 100 [9] => 200 )
以上就是php中常见的排序方法,,,希望对看到的、喜欢编程的
大神们有所帮助,我也就心满意足了!!!