• 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;                                         //当选定要比较的下标值与折半下标相同时,返回折半下标。

    }

  • 相关阅读:
    lseek 与 ioctl
    perror表
    阻塞&&非阻塞
    linux read/write
    文件i/o函数 open/close
    linux 文件io
    linux下的静态库和共享库
    linux基本命令
    c++ 2.1 编译器何时创建默认构造函数
    Java学习笔记34(sql基础 :增删改查1)
  • 原文地址:https://www.cnblogs.com/liupengcheng/p/3724875.html
Copyright © 2020-2023  润新知