轰轰烈烈不如平静!

函数应用3

上一篇 / 下一篇  2011-03-14 20:43:50

 Filename:  binary.c
 *    Description: 从一组排序好的序列里找出某个元素的位置(折半查找) 
 * ==========================================================================
 */
#include <stdio.h>
#define LEN 8
  
int a[LEN] = { 1, 2, 2, 5, 5, 6, 8, 9 };
  
int binary(int number)
{
    int mid, start = 0, end = LEN - 1;
  
    while (start <= end) {
        mid = (start + end) / 2;
        if (a[mid] < number)
            start = mid + 1;
        else if (a[mid] > number)
            end = mid - 1;
        else {
            while (a[mid] == number) {
                --mid;
            };  //返回最早出现的匹配位值
            return mid + 1;
        }
    }
    return -1;
}
  
int main(void)
{
    printf("%d\n", binary(2));
    return 0;
}

 


 

 


TAG:

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 157798
  • 日志数: 39
  • 书签数: 1
  • 建立时间: 2009-04-21
  • 更新时间: 2020-08-21

RSS订阅

Open Toolbar