新聞中心
這篇文章給大家介紹在php中對(duì)數(shù)組進(jìn)行排序的方法有哪些,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
A.內(nèi)部排序(直接加載到內(nèi)存進(jìn)行排序):包括交換式排序(冒泡和快速法)、選擇式排序、插入式排序
B.外部排序(因數(shù)據(jù)量大,需借助外部存儲(chǔ)進(jìn)行排序):包括合并排序、直接合并排序
【冒泡排序:從后向前,依次比較相鄰元素的排序碼,若發(fā)現(xiàn)逆序則交換,一輪結(jié)束后,再來(lái)一輪,直到所有相鄰數(shù)無(wú)逆序,即按順序排完】
復(fù)制代碼 代碼如下:
function maoPao($arr,$style)//【默認(rèn)傳遞的是值,不是地址。如果在$arr前加個(gè)&,則和$arr1指向同一個(gè)地址,函數(shù)外的$arr1也被排好了】
{
$temp=0;
$flag=false;
for($i=0;$i
for($j=0;$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;//當(dāng)一次橫向循環(huán)下來(lái)flag==false;說(shuō)明縱向循環(huán)里每次相鄰元素比較大小時(shí)if條件均不滿足,即從小到大已排好,無(wú)需再橫向循環(huán)
}
}
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
【選擇排序:第二個(gè)數(shù)至第n個(gè)數(shù)分別與第一個(gè)數(shù)比較,進(jìn)行交換,第三個(gè)數(shù)至第n個(gè)數(shù)分別與第二個(gè)數(shù)比較,進(jìn)行交換,直到排完】
復(fù)制代碼 代碼如下:
function selectSort($arr,$style)
{
$temp=0;
$flag=false;
for($i=0;$i
for($j=$i+1;$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');
復(fù)制代碼 代碼如下:
function selectSort($arr,$style)
{
$temp=0;
$flag=false;
for($i=0;$i
for($j=$i+1;$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');
echo "
";
關(guān)于在php中對(duì)數(shù)組進(jìn)行排序的方法有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
當(dāng)前文章:在php中對(duì)數(shù)組進(jìn)行排序的方法有哪些-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://fisionsoft.com.cn/article/ceijph.html