數組排序
排序基礎
大約有幾十種方法的排序;
php中,排序相當簡單:一個函數搞定!
比如:
$arr5 = array( 12, 'aa'=>8, 6=>10,'bb'=> 3, 4);
//sort($arr5); //排完了!——他們按正序排列了,下標變成了0,1,2,3,4
//asort($arr5); //也排完了——他們按正序排列了,而且下標還保持關係
rsort($arr5); //又排完了——他們按倒序排列了
更多詳見:
冒泡排序
$a1 = array( 8, 10, 3, 7, 11, 5 );
冒泡排序規律:
1,一個數組的長n是可獲得的:$n = count($a1);
2,要進行從左到右的「比較」趟數為n-1趟;
3,每一趟要進行比較的次數都比前一趟少1次,並且:第1趟要比較n-1次(n個數參與比較)
4,每一次都是比較緊挨著的兩個數據,並且如果左邊的數比右邊的大,則需要將他們交換位置
代碼:
選擇排序:
$a1 = array( 8, 10, 3, 7, 11, 5 );
描述:
從當前「剩餘」沒有排序的數據中,找出其中的最大值及其下標,並將該項跟這些數據中的最後一項進行交換位置。這樣每趟都可以確定一個當前剩餘數據中的最大值並放在最後。經過若干趟之後,就都可以排列完成。
選擇排序的規律:
1,一個數組的長n是可獲得的:$n = count($a1);
2,要進行找出剩餘數據中的最大值的趟數是n-1;
3,每一趟要找最大值的數據個數比前一趟少一個,並且第一趟有n個數據;
4,每一趟結束後,都可以找出其中的最大值及其下標,此時要將該項跟這一趟的最後一項交換位置;
代碼實現: