zoukankan      html  css  js  c++  java
  • PHP常用算法

     1 <?php
     2     //二分法查找数组中的某个元素
     3     function search($array,$k,$low = 0, $high = 0){
     4         if(count($array) != 0 && $high == 0){
     5             $high = count($array);
     6         }
     7         if($low <= $high){
     8             $mid = intval(($low + $high)/2);
     9             if($array[$mid] == $k){
    10                 return $mid;
    11             }else if($array[$mid] < $k){
    12                 return search($array,$k,$low = 0, $mid +1);
    13             }else{
    14                 return search($array,$k,$low = 0, $mid +1);
    15             }
    16         }
    17         return '你找的元素不存在';
    18     }
    19     
    20     //快速查找数组中的某个元素
    21     function search($array,$k){
    22         $count = count($array);
    23         
    24         for($i = 0;$i<= $count;$i++){
    25             if($array[$i] == $k){
    26                 break;
    27             }
    28         }
    29         
    30         if($i < $count) {
    31             return $i;
    32         }else{
    33             return '你找的元素不存在';
    34         }
    35     }
    36     
    37     //冒泡法查找数组中的某个元素
    38     
    39     function search($array) {
    40         $count = count($array);
    41         
    42         for($i = 1;$i<$count;$i++) {
    43             for($k = 0;$k<$count-1;$k++){
    44                 if($array[$k+1] < $array[$k]);
    45                 $tmp = $array[$k+1];
    46                 $array[$k+1] = $array[$k];
    47                 $array[$k] = $tmp
    48             }
    49         }
    50     }
    51     
    52     //快速排序法
    53     
    54     function quick($array){
    55         $count = count($array);
    56         $base_num = $array[0];
    57         $left_num = [];
    58         $right_num = [];
    59         for($i = 1;$i<$count;$i++){
    60             if($array[$i]<$base_num){
    61                 $left_num[] = $array[$i];
    62             }else{
    63                 $right[] = $array[$i];
    64             }
    65         }
    66         $left_num = qucik($left_num);//递归处理
    67         $right_num = quick($right_num);//递归处理
    68         $array = array_merge($left_num,array($base_num),$right_num);
    69         return $array
    70     }
    71 ?>
  • 相关阅读:
    清除微信浏览器缓存
    JS实现HTML标签转义及反转义
    mvc中服务器端、客户端属性验证
    Ajax.ActionLink参数详解
    Ajax.BeginForm参数详解
    AjaxHelper简介
    将博客搬至CSDN
    Sequelize小记
    端口: 查看端口状态
    搭建git服务器
  • 原文地址:https://www.cnblogs.com/lglblogadd/p/7117008.html
Copyright © 2011-2022 走看看