zoukankan      html  css  js  c++  java
  • PHP顺序查找和二分查找算法

    使用PHP顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
    <?php
    //二分查找(数组里查找某个元素)
    function bin_sch($array, $low, $high, $k){
     if ($low <= $high){
      $mid = intval(($low+$high)/2);
      if ($array[$mid] == $k){
       return $mid;
      }elseif ($k < $array[$mid]){
       return bin_sch($array, $low, $mid-1, $k);
      }else{
       return bin_sch($array, $mid+1, $high, $k);
      }
     }
     return -1;
    }
    //顺序查找(数组里查找某个元素)
    function seq_sch($array, $n, $k){
     $array[$n] = $k;
     for($i=0; $i<$n; $i++){
      if($array[$i]==$k){
       break;
      }
     }
     if ($i<$n){
      return $i;
     }else{
      return -1;
     }
    }
    //写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())
    
    //二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
    function array_sort($arr, $keys, $order=0) {
     if (!is_array($arr)) {
      return false;
     }
     $keysvalue = array();
     foreach($arr as $key => $val) {
      $keysvalue[$key] = $val[$keys];
     }
     if($order == 0){
      asort($keysvalue);
     }else {
      arsort($keysvalue);
     }
     reset($keysvalue);
     foreach($keysvalue as $key => $vals) {
      $keysort[$key] = $key;
     }
     $new_array = array();
     foreach($keysort as $key => $val) {
      $new_array[$key] = $arr[$val];
     }
     return $new_array;
  • 相关阅读:
    Turtlebot-导航
    Turtlebot-创建地图-Gmapping-Kinect
    Gflags
    Linux Driver 入门
    Linux Kernel 入门
    Linux Driver 入门
    Linux Driver 入门
    Linux Driver 入门
    Win10 复制文件路径
    vs2010 nuget 基础连接已经关闭:发送时发生错误
  • 原文地址:https://www.cnblogs.com/kevin-yang123/p/14177802.html
Copyright © 2011-2022 走看看