程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中數組排序各種方法

php中數組排序各種方法

編輯:關於PHP編程

在我們學程序時就知道排序大概有泡排序法、快速排序法、選擇排序法等,同時排序方法 分為兩在類內部和外部。

數組的排序方法
分為兩在類:
1、內(內存)部排序
2、外部排序(數據量很大,內存放不下,需要借助外部
存儲)


----------------
排序sorting是一個程序員的基本功
一:內部排序
(1)交換式排序
1、冒泡法

數組默認的傳遞是值傳遞,而不是地址傳遞
後面將講到對象類型,對象默認的傳遞就是地址傳遞

//優化,將冒泡排序法封裝成函數,利於以後使用

 代碼如下 復制代碼

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;
}

}
}
}

$arry=array(2,6,-4,7,9,0);
bubbleSort($arry);
print_r($arry);

2、快速排序法(神奇的快速,涉及到遞歸)

3、選擇排序法

 代碼如下 復制代碼

function selectSort(&$myarr){
$temp=0;
for($i=0;$i<count($myarr)-1;$i++){
//假設$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;
}

}

4、插入排序法

查詢速度:冒泡排序法<選擇排序法<插入排序法

個人最喜歡用的是交換排序了,就是大家說的泡泡排序法了,這種方法比較好用,但不適於大數據量的排序。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved