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

PHP中數組的三種排序方法,php數組三種排序

編輯:關於PHP編程

PHP中數組的三種排序方法,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;         }     } } 理解: 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   二、選擇排序法     說明:先假設第一個數就是最小的數,然後將後面的數依次與它比較,如果假設的數不是最小的數,就將它與後面的最小的數調換位置 $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; } 理解: 2,1,-1,3,0     //先假設第一個數2為最小值,它後面的數依次與2做比較,尋找到最小的那個數 過程: 1小於2,那麼minval=1 -1小於1,那麼minval=-1 3大於-1,不變 0大於-1,不變 那麼現在就找到了該數組中最小的數了為-1 將-1與2調換位置就完成第一個數的排序了 那麼現在數組變成 -1,1,2,3,0 現在第一個數-1已經為有序,所以不參與比較了,往後面繼續 現在假設minval=1 2大於1,不變 3大於1,不變 0小於1,那麼minval=0 現在一次循環完成,調換0與1的位置完成第二個數的排序 那麼現在數組變成 -1,0,2,3,1 //後面的推法與上面相同。。。   三、插入排序法 說明:先假設一個數組中的第一個數為單獨的有序數組,再將後面的一個數與它【這裡隨它I的增長,就變成它們了】做比較,如果後面的數比假設的數還小,則將小的那個數後移,最後將那個數移到最前面 $arr=array(2,1,-1,3,0); for($i=1;$i<count($arr);$i++){     $insertval=$arr[$i];     $insertindex = $i-1;     while($insertindex>=0 && $insertval<$arr[$insertindex]){         $arr[$insertindex+1]=$arr[$insertindex];         $insertindex--;     }     $temp = $arr[$i];     $arr[$insertindex+1]=$insertval; } 理解: 2,1,-1,3,0     //第一次,先保存待插入的數1為insertval,再拿 insertval 與2比較,1小於2,所以把2後移,變成如下的圖 2,2,-1,3,0     //此時2前面沒有數字了,insertindex=0,所以比較完成,那麼將insertval插入到尋找到的這個位置。變成如下圖 1,2,-1,3,0     //此時,1,2變成有序數組     //第二次,先保存待插入的數-1為insertval,再拿insertval與2做比較,-1小於2,所以把2後移,變成如下圖 1,2,2,3,0     //此時,再拿insertval與1做比較,-1小於1,那麼把-1後移,變成如下圖(這就是一個拿待插入數與前面的有序數組比較的過程) 1,1,2,3,0     //此時,insertindex到頭了,所以將insertval插入該位置 -1,1,2,3,0     //後面推法如上

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