php基礎 陣列排序與查詢

2021-10-06 03:14:03 字數 1739 閱讀 4472

氣泡排序的思路?

**示例

// 氣泡排序

function

bubble_sort(&

$arr)}

}}$arr=[

5,2,

4,7,

9,4,

2,6,

8,3]

;var_dump

($arr

);

錯誤**示例

我寫的,也可以排序,但不符合冒泡的概念

$arr

=array(6

,1,4

,0);

for($i=

0;$i<

count

($arr)-

1;$i++)}

}var_dump

($arr

);

待優化的例子

// 這個陣列使用氣泡排序,只需要一輪排序就可以完成,但如果按照上面**仍會進行4輪排序

// 思路: 只有第1輪會進if判斷,後3輪不進if判斷

$arr

=array(1

,3,5

,8,7

);

優化案例

// 氣泡排序

function

bubble_sort(&

$arr)}

// 給個判斷 如果flag==0 說明沒有進入if,即沒有進行一次交換,此時陣列已經是順序排序,結束迴圈if(

$flag==0

)else}}

$arr

=range(1

,1000);

bubble_sort

($arr);

var_dump

($arr

);

選擇排序也屬於內部排序法,是從陣列中,按指定規則選出某一元素,經過和其他元素比較,按規則交換位置後,達到排序的目的

選擇排序的思路?

在陣列中查詢某個值,若有返回下標,若無提示 「查詢不到」

function

search(&

$arr,$v

)}// 如果找到了 **就走不到這裡 上面的return會結束函式

return

'找不到';}

$v='hello'

;$arr

=array(6

,1,4

,0,'hello');

echo

search

($arr,$v

);

上面**只要找到1個就會結束查詢,如何找到多個呢?

function

search(&

$arr

,$find_val)}

// 判斷 找到了flag=1 找不到flag=0if(

$flag==0

)}$find_val

='hello'

;$arr

=array(6

,1,4

,0,'hello'

,'hello');

search

($arr

,$find_val

);

php陣列排序演算法 查詢演算法

陣列排序演算法氣泡排序 從陣列第乙個元素開始,從左到右,相鄰的2個元素比較大小 如果左邊的比右邊的大,則交換位置。邏輯描述 1.需要進行n 1趟比較過程 2.每一趟的比較都比前一趟少比一次,第一趟需要比較n 1次 3.每趟比較,從陣列的開頭開始,跟緊鄰元素比較,並進行交換 需要的時候 示例 arr2...

php陣列與排序 list

list php 3,php 4,php 5 list 把陣列中的值賦給一些變數 說明void list mixed varname,mixed 像 array 一樣,這不是真正的函式,而是語言結構。list 用一步操作給一組變數進行賦值。注意 list 僅能用於數字索引的陣列並假定數字索引從 0 ...

C 陣列查詢與排序

陣列查詢物件的方法一種是查詢物件 一種是查詢值 1.查詢物件 person p1 new person 名字1 18 person p2 new person 名字1 19 person p3 new person 名字1 20 person persons 查詢p2 所在陣列中的位置 array....