php實現演算法

2022-08-22 06:15:12 字數 1075 閱讀 4141

二分法查詢(已排序)

@params  $arr 查詢的陣列  $start 開始查詢的下標  $end 結束查詢的下標  $value 查詢的值

function bin_search($arr,$start,$end,$value

)else

if($arr[$mid]>$value

)else

}return -1;

}

快速排序 

原理:選擇某個值為基準然後遍歷,比基準值大的放到基準值右邊,小的放左邊,遞迴地把基準左右兩邊的值排序

function quit_sort($arr

)else

}if(!empty($leftarr

))

if(!empty($rightarr

))

return

array_merge($leftarr,[$basevalue],$rightarr

);}

氣泡排序

氣泡排序(bubble sort,台灣譯為:泡沫排序或氣泡排序)是一種簡單的排序演算法。它重複地走訪過要排序的數列,依次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端

function bubblesort($arr

) }

}return

$arr

; }

}

選擇排序

選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。以此類推,直到所有元素均排序完畢。

function selectsort($arr

) }

if($p!=$i

) }

return

$arr

;}

php AES演算法php實現

上次介紹了aes演算法的原理,原理完了肯定就是實現了。其實這個裡面有許多 是都是別人的原始碼,不過拿到手的時候裡面有機個小錯誤,自己就改了改錯。其實在了解演算法的基礎上,寫起來還是比較簡單的。以下就是 了。class aes state self subbytes state,nb state se...

php演算法實現(一)

記錄所有演算法相關知識。寫演算法時,可以先寫test case,這樣比較容易把握和思考。以下演算法都可以直接跑。1.冒泡演算法 arr 2,1,4,3,8,9,7,6,5 print r bubblesort arr function bubblesort arr return arr 2.快速排序...

PHP實現DFA演算法

最近專案需要用到敏感詞過濾功能,最開始想的是使用正則匹配和mysql儲存敏感詞來對敏感詞來進行過濾操作,但是這兩種方法都感覺不好。大家都知道正則效能問題一直都是乙個很大的問題,而使用mysql的話雖然可以實現,但是給資料庫增加了額外的壓力。後面經過google了解到dfa 有窮自動機 演算法可以解決...