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

2021-07-25 21:31:09 字數 1477 閱讀 9848

陣列排序演算法氣泡排序

從陣列第乙個元素開始,從左到右,相鄰的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...