二分查找
来源:互联网 发布:软件测试工具下载 编辑:程序博客网 时间:2024/05/24 05:43
//============================================================================
// Name : C++Study.cpp
// Author : pan
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <queue>
#include <stack>
#include <assert.h>
#include <string.h>
using namespace std;
int bin_find(int a[], int n, int c) {
int front = 0, tail = n, middle;
while (front <= tail) {
middle = (front+tail) / 2;
if (a[middle] == c) {
return middle;
}
if (a[middle] < c) {
front = middle;
}
if (a[middle] > c) {
tail = middle;
}
}
return -1;
}
int main() {
int a[5] = { 1, 2, 3, 4, 5 };
int res = bin_find(a, 5, 3);
cout << res;
return 0;
// Name : C++Study.cpp
// Author : pan
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <queue>
#include <stack>
#include <assert.h>
#include <string.h>
using namespace std;
int bin_find(int a[], int n, int c) {
int front = 0, tail = n, middle;
while (front <= tail) {
middle = (front+tail) / 2;
if (a[middle] == c) {
return middle;
}
if (a[middle] < c) {
front = middle;
}
if (a[middle] > c) {
tail = middle;
}
}
return -1;
}
int main() {
int a[5] = { 1, 2, 3, 4, 5 };
int res = bin_find(a, 5, 3);
cout << res;
return 0;
}
//尾递归
int binfind(int a[],int data,int start,int send)
{
if(start>send){
return -1;
}
int middle=(start+send)/2;
if(a[middle]==data){
return middle;
}else if(a[middle]>data){
return binfind(a,data,start,middle-1);
}else{
return binfind(a,data,middle+1,send);
}
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int res=binfind(a,1,0,9);
cout << res << endl;
return 0;
}
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- Android Studio系列教程二--基本设置与运行
- Android Activity向右滑动返回
- iOS上Sqlite多线程问题
- shell学习四十六天----文件系统的空间信息df和du命令
- js 获取两个标准时间差
- 二分查找
- Valgrind解决 malloc assert failed 3096
- Struts2之数据标签(二)
- Android Studio系列教程三--快捷键
- access(C语言函数名)
- 手机号码正则判断
- 黑马程序员-oc基础-NSFileManage对文件的操作
- hdu4081 次小生成树变形
- MySQL集群硬件,软件,网络要求