介绍
这篇文章主要介绍php有哪几种算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强> php用学算法吗? 强>
php需要学习基本的排序算法,因为算法是程序的核心,一个程序的好坏,关键就是这个程序算法的优劣,当然掌握基础算法主要也是为了锻炼逻辑思维。
<强> php的几种算法如下强>
& lt; ?//- - - - - - - - - - - - - - - - - - - - -//基本数据结构算法//- - - - - - - - - - - - - - - - - - - - -//二分查找(数组里查找某个元素) 函数bin_sch(数组,低位,美元美元高,$ k) { 如果(低& lt;美元=$高){ $=intval中中期((低+高美元)/2); 如果数组($(美元中期)==$ k) { 返回$中期; }elseif ($ k & lt;$阵列(中期美元)){ 返回bin_sch(数组,低位,美元mid-1美元,$ k); 其他}{ 返回bin_sch(数组,中期+ 1美元,美元高,$ k); } } 返回1; }//顺序查找(数组里查找某个元素) 函数seq_sch(数组,美元n, k美元){ 美元array [n]美元=$ k; ($ i=0;美元i<$ n;$我+ +){ 如果数组($ $ i==$ k) { 打破; } } 如果(i<美元n) { 返回$ i; 其他}{ 返回1; } }//线性表的删除(数组中实现) 函数delete_array_element(数组,我美元) { 数组$ len=count ($); 美元($ j=我;j我美元;$ j () { 如果($ array [j]美元& lt;$阵列(j - 1美元)){ tmp=美元array [j]美元; 数组[j]美元=美元数组(j - 1美元); 数组(j - 1美元)=tmp美元; } } } 返回数组美元; }//快速排序(数组排序) 函数quick_sort(数组){ 数组如果(count ($) & lt;=1)返回数组美元; 关键=array[0]美元; 数组$ left_arr=(); 数组$ right_arr=(); (i=1美元;i<美元;count($数组);$我+ +){ 如果(数组($ i) & lt;美元=$键) 美元left_arr[]=$数组($ i); 其他的 美元right_arr[]=$数组($ i); } (left_arr=quick_sort美元left_arr); (right_arr=quick_sort美元right_arr); 返回array_merge ($ left_arr数组(键)美元right_arr美元); }//- - - - - - - - - - - - - - - - - - - - - - - -//PHP内置字符串函数实现//- - - - - - - - - - - - - - - - - - - - - - - -//字符串长度 函数strlen (str)美元 { if ($ str==& # 39; & # 39;)返回0; $ count=0; 而(1){ 如果(str美元(美元数)!=NULL) { 美元计数+ +; 继续; 其他}{ 打破; } } 返回$计数; }//截取子串 函数substr (str美元,美元开始,长度=NULL) { if ($ str==& # 39; & # 39;| | $ start> strlen (str)美元)返回; 如果(($长度!=NULL),,($ start> 0),,($ length>strlen (str)美元,美元开始)返回; 如果(($长度!=NULL),,($ start<0),,美元($ length> strlen (str) +开始美元))返回; 如果长度==NULL)美元(长度=(strlen (str)美元,美元开始); 如果美元开始& lt;0){ 美元($ i=(strlen (str) +美元开始);美元美元i<(strlen (str) +开始+美元长度);$我+ +){ 字符串的子串。=str美元($ i); } } 如果长度比美元;0){ (i=美元开始;i<美元;(开始+长度美元);$我+ +){ 字符串的子串。=str美元($ i); } } if ($ & lt长度;0){ (i=美元开始;美元美元i<(strlen (str) +美元长度);$我+ +){ 字符串的子串。=str美元($ i); } } 返回字符串的子串美元; }//字符串翻转 函数strrev (str)美元 { if ($ str==& # 39; & # 39;)返回0; 美元($ i=(strlen (str) - 1);i>美元;=0;我——美元){ rev_str。=str美元($ i); } 返回rev_str美元; }//字符串比较 函数比较字符串(s1, s2美元) { 如果(strlen (s1) & lt;strlen (s2)美元)返回1; 如果(strlen (s1)比;strlen (s2)美元)返回1; ($ i=0;i<美元;strlen (s1);$我+ +){ 如果(s1 ($ i)==s2美元($ i)) { 继续; 其他}{ 返回错误; } } 返回0; }//查找字符串 函数strstr (str, substr美元) { 美元$ m=strlen (str); (n=strlen美元substr); if ($ m & lt;$ n)返回false; ($ i=0;我& lt;美元=(m - n + 1美元);$我+ +){ 子=美元substr (str,我美元$ n); 如果(strcmp(子,substr美元)==0)返回$ i; } 返回错误; }//字符串替换 函数str_replace(字符串的子串,newsubstr美元,美元str) { 美元$ m=strlen (str); (n=strlen美元substr); $ x=strlen (newsubstr美元); 如果(strchr (str, substr美元)==false)返回false; ($ i=0;$ i php有哪几种算法