php實現氣泡排序

2022-04-29 01:06:09 字數 1278 閱讀 5420

氣泡排序是非常容易理解和實現,,以從小到大排序舉例:

設陣列長度為n。

1.比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。

2.這樣對陣列的第0個資料到n-1個資料進行一次遍歷後,最大的乙個資料就「沉」到陣列第n-1個位置。

3.n=n-1,如果n不為0就重複前面二步,否則排序完成。

方案一:

1

function bubble1_sort($array)6

for($i=0;$i

<$count;$i++)13}

14}15return

$array

;16 }

方案二:

1

function bubble2_sort($array)6

7for($i=0;$i

<$count;$i++)14}

15}16return

$array

;17 }

方案三:

設定乙個標誌,如果這一趟發生了交換,則為true,否則為false。明顯如果有一趟沒有發生交換,說明排序已經完成。

1

function 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,且這個位置之後的資料必定已經有序了,記錄下這位置,第二次只要從陣列頭部遍歷到這個位置就可以了。

function bubble4_sort($array

)

$flag=$count

;

while($flag>0)}}

return

$array

;}

方案五:

function bubble_sort($array

)

for($i=$count-1;$i>0;$i--)

}if(!$flag

)

break

; }

return

$array

;}

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...