PHP排序演算法及查詢演算法

2021-07-24 09:45:57 字數 1586 閱讀 2651

//氣泡排序

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

}$leftarr = quicksort($leftarr);

$rightarr = quicksort($rightarr);

return array_merge($leftarr, $key, $rightarr);

}

//選擇排序

function

selectsort

($array)

$temp = 0;

for($i = 0; $i

< $len - 1; $i++)

}//最後交換

$temp = $array[$i];

$array[$i] = $array[$minindex];

$array[$minindex] = $temp;

}return

$array;

}

//插入排序

function

insertsort

($array)

//插入(這時就給$inserindex找到適當的位置)

$array[$inserindex+1] = $insertval;

}return

$array;

}

//二分查詢函式,它有乙個前提,查詢的陣列必須是有序的

function

binarysearch

($arr,$findval,$leftindex,$rightindex)

//首先找到中間這個數 round是出於如果出現小數,四捨五入

$middleindex=round(($rightindex+$leftindex)/2);

//如果大於則向後面找

if($findval > $arr[$middleindex])else

if($findval

< $arr[$middleindex])else

}//呼叫二分查詢

$arr=array(1,2,3,4,5,6,7,8,9,10);//注意,一定要是有序的

$res = binarysearch($arr,20,0,count($arr)-1);

//這是按順序查詢

function

search

($arr,$findval)

}if(!$flag)

}

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

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

PHP 排序和查詢演算法

知乎 氣泡排序 bubble sort 的原理是什麼?潘屹峰 氣泡排序的原理可以顧名思義 把每個資料看成乙個氣泡,按初始順序自底向上依次對兩兩氣泡進行比較,對上重下輕的氣泡交換順序 這裡用氣泡輕 重表示資料大 小 保證輕的氣泡總能浮在重的氣泡上面,直到最輕的氣泡浮到最上面 保持最後浮出的氣泡不變,對...

排序演算法 查詢演算法

排序演算法 交換排序 選擇排序 歸併排序 基數排序 查詢演算法 動態查詢 雜湊表查詢 簡介 n個資料,從1到n乙個乙個插入進行排序。空間複雜度 o 1 時間複雜度 o n2 演算法穩定性 穩定演算法 簡介 取幾個增量,如5,2,1 最後乙個增量必須為1 然後從左到右5個5個的排序 如 1到5資料排序...