码迷,mamicode.com
首页 > 其他好文 > 详细

二分查找 变形

时间:2014-05-18 18:51:03      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   java   

bubuko.com,布布扣
#include<stdio.h>

int solver(const int a[],const int n,const int t)
{
  int total = 0;
  if (NULL == a && 0 >= n)
      return total;
  int start = 0;
  int end = n-1;
  while(start <= end)
  {
   printf("%d   %d\n",start,end);
   int middle = (start + end)/2;
   if(t == a[middle])
   {
     total = 1;
     int cursor = 0;
     while(++cursor && middle + cursor < n && t == a[middle + cursor])
       total++;
     cursor = 0;
     while(--cursor && middle + cursor >= 0 && t == a[middle + cursor])
        total++;
     return total;
   }
   else if(t > a[middle])
    end = middle - 1;
   else
    start = middle + 1;
  }
  return total;
}

int main()
{
    int a[] = {1,1,1,1,1,1};
    int b[] = {1,2,2,2,2,3};
    int c[] = {1,2,3,5,6,7};
    printf("%d",solver(b,6,4));
}
bubuko.com,布布扣

 

二分查找 变形,布布扣,bubuko.com

二分查找 变形

标签:style   blog   class   code   c   java   

原文地址:http://www.cnblogs.com/berkeleysong/p/3733954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!