【C/C++】BinarySearch

/*
 * BinarySearch.c
 *
 *  Created on: 2014年6月25日
 *      Author: wenbo
 */
#include <stdio.h>
int binarySearch(int arr[],int num,int length){
	int l = 0,u = length-1;
	int curr = 0;
	while(l<=u){
		curr = (u+l)/2;
		if(arr[curr]==num){
			printf("index of the num is:%d\n",curr);
			return curr;
		}
		if(arr[curr]<num){
			l = curr+1;
		}
		if(arr[curr]>num){
			u = curr-1;
		}
	}
	printf("can't find the number.\n");
	return -1;
}
int main(){
	int a[10] = {1,2,3,4,5,65,77,88,99,1001};
	binarySearch(a,1,10);
	binarySearch(a,65,10);
	binarySearch(a,1001,10);
	binarySearch(a,100,10);
	return 0;
}

【C/C++】BinarySearch

时间: 2024-10-12 03:26:26

【C/C++】BinarySearch的相关文章

【JAVA】BinarySearch

public class BinarySearch { static public int binarySearch(int[] arr, int num) { int l = 0, u = arr.length - 1; while (l <= u) { int curr = (l + u) / 2; if (arr[curr] == num) { System.out.println("the index is :" + curr); return curr; } if (a

【Java基础】03_常用API

一.java.lang.Object类[★] 类层次结构的根类,所有类都直接或者间接的继承自该类. 构造方法: public Object() 成员方法: 1) public int hashCode() 返回该对象的哈希码值 2) public final Class getClass() 返回此对象的运行时类,即字节码文件对象 3)public String toString()        //子类重写:显示属性值 返回对象的字符串表示形式 即内存地址值.组成:包名...类名(即类的全路

【算法拾遗】二分查找递归非递归实现

转载请注明出处:http://blog.csdn.net/ns_code/article/details/33747953 本篇博文没太多要说的,二分查找很简单,也是常见常考的查找算法,以下是递归非递归的实现. 非递归实现: /* 非递归实现,返回对应的序号 */ int BinarySearch(int *arr,int len,int key) { if(arr==NULL || len<1) return -1; int low = 0; int high = len-1; while(l

【技术宅10】顺序二分查找算法

//顺序查找 //顺序查找是在一个已知无序队列中找出与给定关键字相同的数的具体位置.原理是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字相同的数为止. function search($array,$k){ $n = count($array);             //count函数用于计算数组中的元素个数 $array[$n] = $k;                //新建一个元素,并将k存放进去 for($i=0; $i<$n; $i++){ if($array[$

【好书推荐】《剑指Offer》之硬技能(编程题7~11)

本文例子完整源码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/sword <[好书推荐]<剑指Offer>之软技能> <[好书推荐]<剑指Offer>之硬技能(编程题1~6)> 持续更新,敬请关注公众号:coderbuff,回复关键字“sword”获取相关电子书. 7.重建二叉树 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.例如:输入前序

【codeforces 718E】E. Matvey&#39;s Birthday

题目大意&链接: http://codeforces.com/problemset/problem/718/E 给一个长为n(n<=100 000)的只包含‘a’~‘h’8个字符的字符串s.两个位置i,j(i!=j)存在一条边,当且仅当|i-j|==1或s[i]==s[j].求这个无向图的直径,以及直径数量. 题解:  命题1:任意位置之间距离不会大于15. 证明:对于任意两个位置i,j之间,其所经过每种字符不会超过2个(因为相同字符会连边),所以i,j经过节点至多为16,也就意味着边数至多

【c/c++】内存分配大小

测试平台:linux 32位系统 用sizeof()运算符计算分配空间大小.单位:字节 1. 数组名与变量名的区别 int main() { char q[] = "hello"; cout << "q:" << sizeof(q) << endl; char *mq = q; cout << "mq:" << sizeof(mq) << endl; const char *

【 js 基础 】Javascript “继承”

是时候写一写 "继承"了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:"汽车"可以被看作是"交通工具"的一种特例.我们可以定义一个 Vehicle 类和一个 Car 类来对这种关系进行描述.Vehicle 的定义可能包含引擎.载人能力等,也就是 所有交通工具,比如飞机.火车和汽车等都有的通用的功能描述.在对 Car 类进行定义的

服务 Service【经典案例】

2017-1-19 Activity public class MainActivity extends ListActivity {     private boolean flag;//线程结束条件     public static final String ACTION_TEST_SERVICE = "com.bqt.service.TEST_SERVICE";     private MyServiceConnection conn;     private IBinderI