zoukankan      html  css  js  c++  java
  • 基于有序表的折半查找法

      二分查找法(binary search)也称为折半查找法,用来查找一组有序的记录数组中的某一记录,其基本思想是:将记录按有序化(递增或递减)排列,在查找过程中如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。

    php实现二分查找算法: 1 <?php 2 $arr = array(10,15,18,21,23,24,28);

     3 function binarySearch($arr,$value){
     4     $low=0;
     5     $high = sizeof($arr)-1;
     6     while($low<=$high){
     7         $mid = ceil(($low+$high)/2);
     8         if($arr[$mid]>$value){
     9             $high = $mid-1;
    10         }elseif($arr[$mid]<$value){
    11             $low = $mid+1;
    12         }else{
    13             return $mid;
    14         }
    15     }
    16     return -1;
    17 }
    18 19 echo binarySearch($arr,24); 20 ?>

     java实现:

    /*基于有序表的折半查找法*/
    public class SearchFile{
        
        public static int search(int a[],int e){
            int low =0,high=a.length-1;
            while(low<=high){
                int mid=(low+high)/2;
                if(e==a[mid]){    //如果在mid位置找到就返回
                    return mid;
                }else{
                    if(e>a[mid]){    
                        low=mid+1;    //将中位的下一位指针赋给low
                    }else{
                        high=mid-1;//将中位的前一位指针赋给high
                    }
                }
            }
            return -1;
        }
        public static void main(String args[]){
            int a[]={1,2,3,3,4,5,5,6,7,8,9,523,3400,5600};
            int index=search(a,523);
            System.out.println(index);
        }
    }
  • 相关阅读:
    javascript:void(0)的作用示例
    JavaScript 字符串编码函数
    call和apply
    雪中情
    flask第二十篇——模板【3】
    flask第十九篇——模板【3】
    flask第十八篇——模板【2】
    flask第十七篇——模板【1】
    flask第十六篇——Response【2】
    flask第十五篇——Response
  • 原文地址:https://www.cnblogs.com/T8881/p/9432771.html
Copyright © 2011-2022 走看看