二分法查詢(已排序)
@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 有窮自動機 演算法可以解決...