二分查找算法
来源:互联网 发布:增大音量的软件 编辑:程序博客网 时间:2024/06/05 02:32
问题:
找出一个有序(字典序)字符串数组arr中值等于字符串v的元素的序号,如果有多个元素满足这个条件,则返回其中序号最大的。
int bisearch(char** arr, int b, int e, char* v)
{
//循环结束有两种情况:
//若minIndex为偶数则minIndex==maxIndex;
//否则就是minIndex==maxIndex-1;
while (minIndex<maxIndex-1)
{
midIndex = minIndex + (maxIndex - minIndex) / 2;//不使用(minIndex+maxIndex)/2是为了避免溢出
if (strcmp(arr[midIndex], v) <= 0)
minIndex = midIndex;
else
maxIndex = midIndex;//不需要midIndex-1,防止minIndex==maxIndex;
}
if (!strcmp(arr[maxIndex], v))//先判断序号 最大的值
return maxIndex;
else if (!strcmp(arr[minIndex], v))
return minIndex;
else
return -1;
}
0 0
- 查找算法 二分查找
- 查找算法:二分查找
- 算法--查找--二分查找
- 查找算法---二分查找
- [算法]二分查找算法
- 算法----二分查找算法
- 查找算法:二分查找算法
- [转载]查找算法----二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法_二分查找
- 算法 二分查找(折半查找)
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 链表
- 【Android学习】四种布局方式
- 两个int整数m和n的二进制表达有多少个位不同
- 翻转字符串i am a student
- UI--单行文本水平触摸滑动效果
- 二分查找算法
- redhat server上配置NFS服务
- ubuntu安装字体
- javascript 学习笔记(3) 闭包
- 电信141p123第30题
- 程序员面试宝典_链表基本操作,建立,求长,删除和插入特定值的结点
- ZigZag Conversion
- Android UI之在popupwindow中获取控件注意问题
- VMwareTools安装及出现kernel header path的解决方法