二分查找
2016-12-06 14:23
190 查看
#include <iostream>
void find_number(int *pInt, int nfind, int nCount)
{
int nleft = 0, nright = nCount;
while (nleft <= nright)
{
int nMid = (nleft + nright) / 2;
if (pInt[nMid] < nfind)
{
nleft = nMid + 1;
}
else if (pInt[nMid] > nfind)
{
nright = nMid - 1;
}
else if (pInt[nMid] == nfind)
{
std::cout <<"array of"<< nMid << ":" << pInt[nMid] << std::endl;
break;
}
}
std::cout << "done" << std::endl;
}
int main(int argc, char **argv)
{
int narray[9] = { 1, 2, 3, 4, 5, 6, 9, 56, 78 };
find_number(narray, 56, 9);
return 0;
}
void find_number(int *pInt, int nfind, int nCount)
{
int nleft = 0, nright = nCount;
while (nleft <= nright)
{
int nMid = (nleft + nright) / 2;
if (pInt[nMid] < nfind)
{
nleft = nMid + 1;
}
else if (pInt[nMid] > nfind)
{
nright = nMid - 1;
}
else if (pInt[nMid] == nfind)
{
std::cout <<"array of"<< nMid << ":" << pInt[nMid] << std::endl;
break;
}
}
std::cout << "done" << std::endl;
}
int main(int argc, char **argv)
{
int narray[9] = { 1, 2, 3, 4, 5, 6, 9, 56, 78 };
find_number(narray, 56, 9);
return 0;
}
相关文章推荐
- 二分查找
- 二分查找之美:二分查找及其变体的正确性以及构造方式
- 理解二分查找!!! 九度OJ-1534,数组中第K小的数字。
- 插入,冒泡,选择,快速排序,二分查找(Java版)
- 程序员编程艺术第二十五章:Jon Bentley:90%无法正确实现二分查找
- 二分查找的思考
- 二分查找_百度百科
- 二分查找 java
- (lintcode)第14题二分查找
- 二分查找程序
- POJ_2112_Optimal Milking( 二分查找 + Floyd + 最大流EK )
- 二分查找(上界,下界)
- 挖掘算法中的数据结构(六):二分查找 和 二分搜索树(插入、查找、深度优先遍历)
- 二分查找--bisect
- c语言利用递归实现二分查找
- 折半查找(二分查找)
- POJ3518Prime Gap(二分查找)
- Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找的两种写法
- 继二分查找之后的有序数组的insert和delete操作