陣列排序演算法氣泡排序
從陣列第乙個元素開始,從左到右,相鄰的2個元素比較大小:如果左邊的比右邊的大,則交換位置。
邏輯描述:
1.需要進行n-1趟比較過程
2.每一趟的比較都比前一趟少比一次,第一趟需要比較n-1次
3.每趟比較,從陣列的開頭開始,跟緊鄰元素比較,並進行交換(需要的時候)
示例:
$arr2 = array(5,15,3,6,9,77);
$len=count($arr2);
for ($i=0; $i <$len-1 ; $i++)
}}
選擇排序
每一次取得陣列中的最大值及其下標,與陣列的最後一項交換(倒數第二項。。。)
邏輯描述:
1.進行n-1趟比較過程
2.每一趟要找的資料的個數都比前一趟少乙個,第一項n個
3.每次找出最大值所在的項,和要與之進行交換的項的位置,依次減一,第一次的位置為n-1
示例:
$arr2 = array(5,15,3,6,9,77);
$leng=count($arr2);
for ($i=0; $i <$leng-1 ; $i++)
}$temp=$arr2[$maxkey];
$arr2[$maxkey]=$arr2[$leng-1-$i];
$arr2[$leng-1-$i]=$temp;
}
陣列的查詢演算法
找出某個陣列中,是否存在某個值(資料)
順序查詢:遍歷陣列。乙個乙個判斷,如果相等,就表示有,然後退出就ok
二分查詢演算法
1.針對的是索引陣列
2.針對的是以及排好序的陣列
示例:
//二分法查詢
$a=array(1,3,5,9,12,19,26,28,33,35,39,45,49,52,59,62,64,69,78,99);
$search=33;
$len=count($a);
function binary_search($arr,$s,$begin,$end)else if ($mid_value>$s)
$re=binary_search($arr,$s,$begin,$mid-1);
}else
$re=binary_search($arr,$s,$mid+1,$end);
} return $re;
}$v1=binary_search($a,$search,0,$len-1);
echo "結果為:";
echo var_dump($v1);
PHP排序演算法及查詢演算法
氣泡排序 function bubblesort array for i 0 i len i return array 快速排序 function quicksort array key array 0 leftarr rightarr array for i 1 i len i else left...
PHP 排序和查詢演算法
知乎 氣泡排序 bubble sort 的原理是什麼?潘屹峰 氣泡排序的原理可以顧名思義 把每個資料看成乙個氣泡,按初始順序自底向上依次對兩兩氣泡進行比較,對上重下輕的氣泡交換順序 這裡用氣泡輕 重表示資料大 小 保證輕的氣泡總能浮在重的氣泡上面,直到最輕的氣泡浮到最上面 保持最後浮出的氣泡不變,對...
PHP陣列的查詢演算法
php陣列的查詢演算法 即 找出某個陣列中是否存在某個值 1.順序查詢 就是遍歷陣列乙個乙個進行判斷如果相等表示找到 退出即可 陣列順序查詢某值 param array arr 要檢索的陣列 param integer need 要查詢的數 return integer 找到返回該數下標 失敗返回f...