氣泡排序是非常容易理解和實現,,以從小到大排序舉例:
設陣列長度為n。
1.比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。
2.這樣對陣列的第0個資料到n-1個資料進行一次遍歷後,最大的乙個資料就「沉」到陣列第n-1個位置。
3.n=n-1,如果n不為0就重複前面二步,否則排序完成。
方案一:
1function bubble1_sort($array)6
for($i=0;$i
<$count;$i++)13}
14}15return
$array
;16 }
方案二:
1function bubble2_sort($array)6
7for($i=0;$i
<$count;$i++)14}
15}16return
$array
;17 }
方案三:
設定乙個標誌,如果這一趟發生了交換,則為true,否則為false。明顯如果有一趟沒有發生交換,說明排序已經完成。
1function bubble3_sort($array)6
$flag=true;7
$j=$count;8
while($flag)17
}18$j--;
1920}21
return
$array;22
23 }
方案四:
如果有100個數的陣列,僅前面10個無序,後面90個都已排好序且都大於前面10個數字,那麼在第一趟遍歷後,最後發生交換的位置必定小於10,且這個位置之後的資料必定已經有序了,記錄下這位置,第二次只要從陣列頭部遍歷到這個位置就可以了。
1function bubble4_sort($array)6
$flag=$count;7
while($flag>0)17}
18}19return
$array
;20 }
方案五:
1function bubble_sort($array)6
for($i=$count-1;$i>0;$i--)15}
16if(!$flag)17
break;18
}19return
$array
;20 }
php實現氣泡排序
氣泡排序很簡單,就是不斷地交換相鄰的數,使得最大的數排在最後面,即一次迴圈可以確定最大乙個數的排序位置。php 實現 function bubble arr 關於上面的swap函式,做一下備註 swap很多人用異或來實現,如下 function swap a,b 但是這種方法有個缺陷,就是當兩個引數...
php實現氣泡排序
乙個程式應包括 對資料的描述 在程式中要指定資料的型別和資料的組織形式,即資料結構 data structure 對操作的描述 即操作步驟,也就是演算法 algorithm nikiklaus wirth提出的公式 程式 資料結構 演算法 作為乙個程式設計師必須得懂點演算法啊,就從最簡單的開始吧 氣...
php實現氣泡排序
一 問題 氣泡排序,c裡基礎演算法,從小到大對一組數排序。二 截圖 三 思路 這題從小到大,第一輪排最小,第二輪排第二小,第三輪排第三小,依次類推 1 2 arr array 1,3,5,32,756,2,6 3 len count arr 4 for i 0 i 12 13var dump arr...