氣泡排序的思路?
**示例
// 氣泡排序
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....