您的位置:88bifa必发唯一官网 > 八八必发娱乐 > 具体文字描述自己百度八八必发娱乐

具体文字描述自己百度八八必发娱乐

发布时间:2019-07-02 08:41编辑:八八必发娱乐浏览(132)

    本文实例讲述了PHP实现的折半查询算法。分享给大家供大家参考,具体如下:

    什么是折半查询算法?具体文字描述自己百度。直接上代码:

    <?php
    header("Content-type: text/html; charset=utf-8");
    /* 折半查询算法--不用递归 */
    function qSort($data = array(), $x = 0){
     $startIndex = 0;    // 开始索引
     $endIndex = count($data) - 1; // 结束索引
     $index = 0;
     $number = 0;     // 计数器
     do{
      if($endIndex > $startIndex){
       $searchIndex = ceil(($endIndex - $startIndex) / 2);
      }else if($endIndex == $startIndex){
       $searchIndex = $endIndex;
      }else{
       $index = -1;
       break;
      }
      $searchIndex  = ($startIndex - 1);
      echo '检索范围:'.$startIndex.' ~ '.$endIndex.'<br>检索位置:'.$searchIndex.'检索值为:'.$data[$searchIndex];
      echo '<br>=======================<br><br>';
      if($data[$searchIndex] == $x){
       $index = $searchIndex;
       break;
      }else if($x > $data[$searchIndex]){
       $startIndex = $searchIndex   1;
      }else{
       $endIndex = $searchIndex - 1;
      }
      $number  ;
     }while($number < count($data));
     return $index;
    }
    /* 折半查询算法--使用递归 */
    function sSort($data, $x, $startIndex, $endIndex){
     if($endIndex > $startIndex){
      $searchIndex = ceil(($endIndex - $startIndex) / 2);
     }else if($endIndex == $startIndex){
      $searchIndex = $endIndex;
     }else{
      return -1;
     }
     $searchIndex  = ($startIndex - 1);
     echo '检索范围:'.$startIndex.' ~ '.$endIndex.'<br>检索位置:'.$searchIndex.'检索值为:'.$data[$searchIndex];
     echo '<br>=======================<br><br>';
     if($data[$searchIndex] == $x){
      return $searchIndex;
     }else if($x > $data[$searchIndex]){
      $startIndex = $searchIndex   1;
      return sSort($data, $x, $startIndex, $endIndex);
     }else{
      $endIndex = $searchIndex - 1;
      return sSort($data, $x, $startIndex, $endIndex);
     }
    }
    $data = array(1, 3, 4, 6, 9, 11, 12, 13, 15, 20, 21, 25, 33, 34, 35, 39, 41, 44);
    $index = qSort($data, 11);      // 不用递归的排序方法
    $index = sSort($data, 11, 0, count($data) - 1); // 使用递归的排序方法
    echo '结果:'.$index;
    

    运行结果:

    八八必发娱乐 1

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》及《php程序设计算法总结》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:

    • PHP有序表查找之二分查找(折半查找)算法示例
    • PHP实现的折半查找算法示例
    • php顺序查找和二分查找示例
    • PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
    • php线性表顺序存储实现代码(增删查改)
    • PHP有序表查找之插值查找算法示例
    • PHP基于二分法实现数组查找功能示例【循环与递归算法】
    • PHP二分查找算法示例【递归与非递归方法】
    • php数据结构与算法(PHP描述) 查找与二分法查找
    • 最新用php获取谷歌PR值算法,附上php查询PR值代码示例
    • 使用PHP实现二分查找算法代码分享
    • PHP区块查询实现方法分析

    本文由88bifa必发唯一官网发布于八八必发娱乐,转载请注明出处:具体文字描述自己百度八八必发娱乐

    关键词: 八八必发娱乐

上一篇:批量添加多条数据

下一篇:没有了