二分查找
2015-09-05 02:04
316 查看
1.原理:
(1).在已经排好序的数 a[i,j] 组中,取中间的数 a[mid] 与29进行比较
(2)若 a[mid] < 29, 在 a[mid+1,j] 中查找;
若 a[mid] > 29, 在 a[i,mid-1] 中查找;
若 a[mid] = 29,mid+1 就是29 在数组中的位置;
2.代码:
void find_number(int array[], int len, int num)
{
int left = 0, right = len - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (array[mid] < num)
left = mid + 1;
else if (array[mid] > num)
right = mid - 1;
else if (array[mid] == num)
{
cout << mid << ':' << array[mid];
return;
}
}
cout << "找不到 " << num;
}
(1).在已经排好序的数 a[i,j] 组中,取中间的数 a[mid] 与29进行比较
(2)若 a[mid] < 29, 在 a[mid+1,j] 中查找;
若 a[mid] > 29, 在 a[i,mid-1] 中查找;
若 a[mid] = 29,mid+1 就是29 在数组中的位置;
2.代码:
void find_number(int array[], int len, int num)
{
int left = 0, right = len - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (array[mid] < num)
left = mid + 1;
else if (array[mid] > num)
right = mid - 1;
else if (array[mid] == num)
{
cout << mid << ':' << array[mid];
return;
}
}
cout << "找不到 " << num;
}
相关文章推荐
- 算法基础——算法导论(1)
- lua和luajit在mac模拟器中的运行比较
- 求最大公约数
- VS如何设置多级代码缩进
- Laravel artisan 命令工具
- cocos2dx-lua手游客户端框架设计
- flash小游戏在Kongregate上线——BasketBall Master(篮球大师)
- 设计模式c++(二)----Biluder建造者模式
- Python爬虫教程——进阶一之爬虫框架Scrapy安装配置
- 快速模取幂
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- mac MySQL5.6中文乱码
- 条款15 在资源管理类中提供对原始资源的访问
- 分块大法吼2
- php goto操作符
- maven各种错误
- n皇后问题
- Robbers(贪心)
- Python爬虫教程——入门七之正则表达式