算法-对分查找(二分查找)C++实现
2024-08-25 12:53:02
这个是个主要的查找算法。由于仅仅是把数读入就须要(N)的时间量,因此我们在说这类问题的时候都是如果读入过的。
在算法经常使用的时间。将问题缩小为一部分(大约1/2),那么我们就觉得这个算法是O(logn)级别的。
先说下对分查找的时间复杂度为O(logn)
前提是已经拍序好的数列。
//
// main.cpp
// binarySearch
//
// Created by Alps on 14-7-24.
// Copyright (c) 2014年 chen. All rights reserved.
// #include <iostream> int binarySearch(const int A[], int X, int N){
int start = 0, end = 0, mid;
end = N;
while (start <= end) {
mid = (start + end)/2;
if (X > A[mid]) {
start = mid+1;
continue;
}else if (X < A[mid]){
end = mid-1;
continue;
}else{
return mid;
}
}
return -1;
} int main(int argc, const char * argv[])
{
int A[]={1 ,4 , 6, 8, 19, 34, 93};
int N = sizeof(A)/sizeof(int);
int X = 19; int locate = binarySearch(A, X, N);
if (locate == -1) {
printf("Can't find the element %d\n",X);
}else{
printf("The element %d is locate in %d\n",X,locate);
} return 0;
}
这里面没什么原理。
。问题非常easy~
最新文章
- Java实现Excel中的NORMSDIST函数和NORMSINV函数
- 一个可随意定位置的带色Toast——开源代码Crouton的简单使用
- ueditor 百度编辑器,取消或自定义右键菜单
- [NHibernate]视图处理
- [转]SQL 操作结果集 -并集、差集、交集、结果集排序
- Java链表
- JavaSE配置文件java.util.Properties【单例模式Singleton】
- a++累加
- 黑马程序员——JAVA基础之包,权限
- hdu 3549 Flow Problem 网络流
- 通过 CALayer 代理方法绘图
- Jquery类级别与对象级别插件开发
- [DevExpress]ChartControl之SeriesTemplate示例
- Windows下的SVN环境搭建详解
- Ubuntu安装Mysql及使用
- jQuery 获取和设置type为hidden的input的值
- [CODEVS 1288]埃及分数
- BUGKU Misc 普通的二维码
- Android为TV端助力context转换类型
- common lisp的几个基本概念