• (面试题)用折半查找法在一组整形数组中查找某个数据


    /**
     * 二分法 :用折半查找法在一组排好序(递增有序或递减有序)的值中查找某个数据。
     *
     * 基本思想:
     *
     * 首先将待查数据k与排好序(递增有序)的一组数据的中间位置上的数据进行比较, 若相等,则查找成功;
     * 若k>a[mid],则待查数据k只可能出现在右半部a[mid+1…n]中,则应在这个右半部中再进行折半查找;
     * 若k<a[mid],则待查数据k只可能出现在左半部a[1…mid-1]中,则应在这个左半部中再进行折半查找;
     * 这样通过逐步缩小查找范围,直到找到或找不到该数据k为止。
     *
     * @author Administrator
     *
     */
    public class BinarySearch
    {

     public static int binarySearch(int[] a, int key)
     {
      if (a == null || a.length == 0)
      {
       return -1;
      }
      // 开始位置
      int first = 0;
      // 结束位置
      int last = a.length - 1;
      // 中间位置
      int mid;
      // 如果开始时,小于则结束.
      while (first < last)
      {
       mid = (first + last) / 2;
       // 如果等于key,返回这个数在数组中的位置.
       if (a[mid] == key)
        return mid;
       // 如果大于key,则在左边.
       if (a[mid] > key)
        last = mid - 1;
       // 如果小于key,则在右边
       if (a[mid] < key)
        first = mid + 1;
      }
      return -1;
     }

     public static void main(String[] args)
     {
      int[] a =
      { 1, 3, 4, 5, 8, 7, 9, 11, 15 };
      System.out.println(binarySearch(a, 9));
     }
    }

  • 相关阅读:
    显因子模型简介
    关联规则中最小支持度和最小置信度
    Matlab读取音频数据
    初识禁忌搜索算法
    Word中将图表变为表格
    明尼苏达推荐系统导论(第一课 欢迎来到RS)
    python复杂网络分析库NetworkX
    python使用zlib实现压缩与解压字符串
    PostgreSQL 对字段大小写敏感
    pycharm快捷键及一些常用设置
  • 原文地址:https://www.cnblogs.com/qqzy168/p/3301603.html
Copyright © 2020-2023  润新知