• 二分搜索


          编程珠玑中提到了 二分搜索,这也是各大公司面试和笔试的常考题,乍看一下此题很简单,用递归和循环都可以做出来,但是却隐藏了对程序员编写代码能力的考察,以及考虑事情范围的全面性。

    下面看一下二分搜索的循环代码

     1 int binarySearch(int low , int high,int z,int a[])
     2     {
     3         
     4                   if((low>high)||low<0||high<0)
     5                   {
     6                            return -1;// 分析输入参数的各种错误
     7 
     8                     }
     9                                while (low <= high)
    10         {
    11             int mid = (low + high) / 2;
    12             if (a[mid]< z)
    13             {
    14                 low = mid + 1;
    15             } 
    16                                                 else if (a[mid] > z)
    17             {
    18                 high = mid - 1;
    19             } 
    20                                                 else
    21             {
    22                 return mid;
    23             }
    24         }
    25         return -1;
    26     }

    但是,编程珠玑里面留了一个问题给大家,见习题4.6 的第二题,大意是这样,如果我们查找的元素在数组里面存在多个,那么如何查询此元素出现的第一个位置?

  • 相关阅读:
    20191117-STD::讲解及求平均数例题
    计算机网络-ip分类
    游标cursor
    ajax
    django ORM
    urls
    templates
    views
    models
    setting
  • 原文地址:https://www.cnblogs.com/fightingxu/p/2820605.html
Copyright © 2020-2023  润新知