澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

php中的一些数组排序方法分享,php数组排序的各

一、冒泡排序法 表达:找到最大的数,排列到最末尾,然后继续找

对于php数组排序在php中提供了累累的函数,下边笔者列出来,不全的豪门能够互补。

A.内部排序(直接加载到内存举行排序):包涵调换式排序(冒泡和火速法)、选用式排序、插入式排序
B.外界排序(因数据量大,需依赖外界存款和储蓄举行排序):包蕴联合排序、直接统一排序

例:

sort() 函数用于对数组单元从低到高举行排序。
rsort() 函数用于对数组单元从高到低进行排序。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低举行排序并维持索引关系。
ksort() 函数用于对数组单元根据键名从低到高实行排序。
krsort() 函数用于对数组单元依照键名从高到低进行排序。

【冒泡排序:从后迈入,依次相比相邻成分的排序码,若觉察逆序则调换,一轮截至后,再来一轮,直到全数相邻数无逆序,即按顺序排完】

复制代码 代码如下:

然则前天大家珍视是还是不是讲php自带的数组排序函数重即使讲自定的排序

复制代码 代码如下:

$arr = array(3,5,-1,0,2);
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;
}
}
}

一、冒泡排序法
  表明:找到最大的数,排列到最末尾,然后继续找
 
例:

function maoPao($arr,$style)//【私下认可传递的是值,不是地方。如若在$arr前加个&,则和$arr1指向同叁个地点,函数外的$arr1也被排好了】
{
$temp=0;
$flag=false;
for($i=0;$i<count($arr)-1;$i )
{
for($j=0;$j<count($arr)-1-$i;$j )
{
if($style=='bts') $op=$arr[$j]<$arr[$j 1];
else if($style=='stb') $op=$arr[$j]>$arr[$j 1];
if($op)
{
$temp=$arr[$j];
$arr[$j]=$arr[$j 1];
$arr[$j 1]=$temp;
$flag=true;
}
}
if($flag==false)
{
break;//当叁次横向循环下来flag==false;表达纵向循环里每趟相邻成分一点都不小小时if条件均不满足,即从小到大已排好,无需再横向循环
}
}
foreach ($arr as $key => $value)
{
echo $value.',';
}
}
$arr1=array(101,101,-9,-8,0,76,1,57,43,90,23,-56);
maoPao($arr1,'stb');//small to big

理解:
3,5,-1,0,2
//从第八个数开始以往比较,假如比后边的数大则与背后的数调地点
//第三次,3低于5,那么不改变
//第四回,5胜出-1,那么形成
3,-1,5,0,2
//第三次,5大于0
3,-1,0,5,2
//第四次,5大于2
3,-1,0,2,5
由来实现一遍内循环,此时最后八个数完事排序,下一次将不参预
3,-1,0,2,5次之次外循环开头 第一遍:3过量-1
-1,3,0,2,5
第二次:3大于0
-1,0,3,2,5
第三次:3大于2
-1,0,2,3,5
时至前日完毕前面两位数的排序了,接下去类推
-1,0,2,3,5
二、选择排序法
证实:先倘诺第4个数正是一丁点儿的数,然后将前边的数种种与它比较,固然只要的数不是比较小的数,就将它与前边的小小的数互交换一下地点置

 代码如下

【选择排序:第叁个数至第n个数分别与第三个数比较,举办置换,第多个数至第n个数分别与第一个数比较,进行交流,直到排完】

复制代码 代码如下:

$arr = array(3,5,-1,0,2);
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;
        }
    }
}

复制代码 代码如下:

$arr=array(2,1,-1,3,0);
for($i=0;$i<count($arr)-1;$i ){
$minval = $arr[$i];
$minindex = $i;
for($j=1 $i;$j<count($arr);$j ){
if($arr[$j]<$minval){
$minval = $arr[$j];
$minindex = $j;
}
}
$temp = $arr[$i];
$arr[$i] = $arr[$minindex];
$arr[$minindex] = $temp;
}

理解:
3,5,-1,0,2
    //从第一个数起先将来比较,假使比后边的数大则与背后的数调地方
    //第三次,3低于5,那么不改变
    //第三遍,5跨越-1,那么形成
3,-1,5,0,2
    //第三次,5大于0
3,-1,0,5,2
    //第四次,5大于2
3,-1,0,2,5
    至此完结三次内循环,此时最终二个数完结排序,后一次将不加入
3,-1,0,2,5次之次外循环伊始    第二次:3胜出-1
-1,3,0,2,5
    第二次:3大于0
-1,0,3,2,5
    第三次:3大于2
-1,0,2,3,5
    至此完成前面两位数的排序了,接下去类推
-1,0,2,3,5
二、选择排序法    表达:先要是第叁个数正是纤维的数,然后将前边的数各种与它相比,假诺假定的数不是十分小的数,就将它与背后的一点都不大的数沟通地点

function selectSort($arr,$style)
{
$temp=0;
$flag=false;
for($i=0;$i<count($arr)-1;$i )
{
for($j=$i 1;$j<count($arr);$j )
{
if($style=='bts') $op=$arr[$i]<$arr[$j];
else if($style=='stb') $op=$arr[$i]>$arr[$j];
if($op)
{
$temp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$temp;
$flag=true;
}
}
if($flag==false)
{
break;
}
}
foreach ($arr as $key => $value)
{
echo $value.',';
}
}
$arr1=array(21.5,33,90,7,-4,5,55,11);
selectSort($arr1,'stb');

本文由澳门皇冠金沙网站发布于编辑程序,转载请注明出处:php中的一些数组排序方法分享,php数组排序的各