zoukankan      html  css  js  c++  java
  • java之折半查询

    /**
    * Created by rabbit on 2014-5-12.
    */
    public class HalfSerach
    {
        public static void main(String[] args)
        {
            int [] arr = {3,6,7,9,11,22,35};              //设置arr数组并进行复制
            int index = halfsearch(arr,35);               //调用折半查询对数组里的35进行查询
            System.out.println("index " +  index);      //输出查询结果
        }

        public static int halfsearch(int [] arr,int key) //开始创建折半查询方法
        {
            int min,max,mid;                                  //创建最小下标min,最大下标max。折半下标mid。
            min = 0;                                            //最小下标为
            max = arr.length-1;                             //最大小标为arr.length-1
            mid=(min+max)/2;                               //折半下标为(最大下标和最小下标的和)的一半

            while (arr[mid]!=key)                      //当选定要比较的下标值与折半下标不相同时
            {
                if (key>arr[mid])                             //如果选定下标大于折半下标
                    min=mid+1;                                //最小下标移动到折半下标的下一下标处
                else if (key<arr[mid])                       //如果选定下标小于折半下标
                    max=mid-1;                                //最大下标移动到折半下标的上一下标处

                if (min>max)                             //如果最小下标比最大小标还大
                    return -1;                                  //返回-1;
                mid=(min+max)/2;                           //折半查询循环
            }
            return mid;                                         //当选定要比较的下标值与折半下标相同时,返回折半下标。

    }

  • 相关阅读:
    pymysql 防止sql注入案例
    4、【常见算法】一道经典的额递归题目
    3、【常见算法】寻找非递减序列中绝对值最小值的绝对值
    2、【常见算法】按序重排问题
    9、【排序算法】基数排序
    8、【排序算法】桶排序
    7、【排序算法】归并排序
    6、【排序算法】堆排序
    20、【图】Prim(普里姆)算法
    19、【图】Kruskal(克鲁斯卡尔)算法
  • 原文地址:https://www.cnblogs.com/liupengcheng/p/3724875.html
Copyright © 2011-2022 走看看