zoukankan      html  css  js  c++  java
  • 二分查找or折半查找

     1 package com.gxf.search;
     2 
     3 /**
     4  * 测试折半查找or二分查找
     5  * @author xiangfei
     6  *
     7  */
     8 public class BiSearch {
     9     
    10     /**
    11      * 非递归实现,从第1个元素开始查找
    12      * @param array
    13      * @param k
    14      * @return 0 查找失败
    15      */
    16     public int biSearch(int array[], int k){
    17         int low = 1;
    18         int high = array.length - 1;
    19         
    20         while(low <= high){
    21             int mid = (low + high) / 2;
    22             if(k == array[mid]){
    23                 return mid;
    24             }
    25             if(k > array[mid]){
    26                 low = mid + 1;                
    27             }
    28             else{
    29                 high = mid - 1;
    30             }
    31         }
    32         return 0;
    33     }
    34     
    35     /**
    36      * 递归实现
    37      * @param array
    38      * @param k
    39      * @param l
    40      * @param h
    41      * @return
    42      */
    43     public int biSearch(int array[], int k, int l, int h){
    44         if(l > h){
    45             return 0 ;
    46         }
    47         if(k == array[(l + h) / 2])
    48             return (l + h) / 2;
    49         else if(k > array[(l + h) / 2]){
    50             return biSearch(array, k, (l + h) / 2 + 1, h);
    51         }
    52         else{
    53             return biSearch(array, k, l, (l + h) / 2 - 1);
    54         }
    55     }
    56 
    57     public static void main(String[] args) {
    58         BiSearch biSearch = new BiSearch();
    59         int array[] = {0,1,3,4,5,6,7};
    60         System.out.println(biSearch.biSearch(array, 5));
    61         System.out.println(biSearch.biSearch(array, 5, 1, array.length - 1));
    62 
    63     }
    64 
    65 }
  • 相关阅读:
    如何让Jboss的debug在myeclise上运行
    ./configure --prefix /?/? 解释
    解决locate无法使用的问题
    ifconfig command not found
    安装tomcat
    通过wget下载tomcat
    通过rpm安装jdk
    通过wget下载jdk
    oracle 创建表空间
    在ASP中使用VFP编写脚本程序
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4093878.html
Copyright © 2011-2022 走看看