php實現氣泡排序演算法註解版

2021-10-06 02:04:18 字數 644 閱讀 8121

大家對氣泡排序的原理都比較明白因此就不多做介紹了。但也有不少朋友使用**實現後總感覺某些地方理解不夠透徹。在這裡對個人認為關鍵的地方進行解釋。

不多bb下面直接配合**講解

<?php

/* * 氣泡排序演算法

* */

$arr = array(45,64,23,98,25,68,33,423); //定義乙個陣列

for ($i=0;$i$arr[$j+1])

}}print_r($arr);``

問題1:如何確定外重次迴圈的次數;

回答:外重迴圈的次數=陣列長度 - 1。如何得出? 人工對10個亂序的數字排序時至多需要調整?答案是九次,當然有些數字可能不用進行調整(對於人類而言。),但計算機不知道那些數字是否需要調整,在**中我們使用最大的調整次數。

問題2:內重迴圈次數如何確定?

回答:內重迴圈次數 = 資料長度 - 1- 已進行幾次外重迴圈(對應外重迴圈的$i),解釋:第一次的外重迴圈後已經將最大數進行沉澱,此時需要排序的數字個數為(10 - 已進行幾次外重迴圈(對應$i)),而對於內重迴圈需要對剩餘的排序數字進行比較次數為(此時需要排序的數字個數 - 1 =10 - 已進行幾次外重迴圈(對應$i)-1 );

PHP實現氣泡排序演算法

function bubblesort arr 在要排序的一組數中,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即,每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換位置 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2...

排序演算法之PHP版快速排序 氣泡排序

一 快速排序 1.簡介 快速排序是由東尼霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 n log n 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 n log n 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的架構上...

PHP 氣泡排序演算法

演算法說明 氣泡排序大概的意思是依次比較相鄰的兩個數,然後根據大小做出排序,直至最後兩位數。由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。但其實在實際過程中也可以根據自己需要反過來用,大樹往前放,小數往後放。示例 從小到大 說明 從大到小的話,就把if判斷那裡的大...