PHP基礎演算法(冒泡)(選擇)(二分查詢)

2021-09-29 05:51:20 字數 1102 閱讀 3952

今天有點時間,回顧一下php的基本演算法,好久沒寫了,今天覆習一下,免得忘記了!!!

氣泡排序

相鄰兩個元素比較,小於(或大於)則交換兩個元素的位置,直到走完所有的元素。

時間複雜度o(n^2)

/**

* @param $arr

* @return mixed

* 氣泡排序

*/function maopaosort($arr)}}

return $arr;

}function swap(&$a,&$b)

快速排序:

在陣列中挑出乙個元素(多為第乙個)作為基本值,掃瞄一遍陣列將比基本值小的元素排在基本值左邊,將所有比基本值大的元素排在基本值之後,通過遞迴將各子串行分別劃分為更小的序列直到所有的序列順序一致,最後將陣列合併起來。記得將基本值加在左邊陣列與右邊陣列之間。

/**

* @param $arr

* @return array

* 快速排序

*/function quicksort($arr)

$tmp = $arr[0];

$left = array(); // 小於中間值

$right = array();// 大於中間值

for($i=1;$i二分查詢

對於給定值val,從序列的中間位置開始比較,如果當前位置值等於val,則查詢成功;若val小於當前位置值,則在數列的前半段中查詢;若val大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。(資料量大的時候使用)

/*** @param $arr

* 二分查詢

* $low 最小位置

* $high 最大位置

* $val 目標值

* $arr 目標陣列

*/function binsearch($low,$high,$val,$arr)elseif ( $val < $arr[$mid])else

}return -1;

}

演算法(冒泡 選擇 二分)

今天寫三種演算法 氣泡排序 兩種 選擇排序 二分法查詢 氣泡排序,將較小的數向前移動 param arr public static void bubblesort int arr 氣泡排序,將較大的數向後移動 param arr public static void bubblesort int ...

氣泡排序 選擇排序和二分查詢演算法

氣泡排序 思路 氣泡排序的思路 實現 public static void bubblebettersort int array if flag p counter counter true 選擇排序 演算法思想 從待排序的陣列中選擇乙個最小的元素,將它與陣列的第乙個位置的元素交換位置。然後從剩下的...

冒泡 選擇 插入 快速 二分查詢

氣泡排序 時間最優 o n 最壞o n2 穩定 def bubble alist n len alist for j in range n 1 for i in range n 1 j if alist i alist i 1 alist i alist i 1 alist i 1 alist i ...