折半查找
来源:互联网 发布:阿里云dns解析 a记录 编辑:程序博客网 时间:2024/05/29 07:19
1.递归实现
#include<iostream>using namespace std;int find(int *a, int low, int high, int x){ if (low > high) return -1; int mid = (low + high) / 2; if (a[mid] == x) return mid; if (x < a[mid]) return find(a, low, mid-1, x); else return find(a, mid+1, high, x);}int binary_Search(int *a, int length, int x){ return find(a, 0, length - 1, x);}int main(){ int a[] = { 0,1, 2, 3, 4, 5, 6, 7, 8 }; cout << binary_Search(a, 9, -1);}
2非递归
#include<iostream>using namespace std;int binary_Search(int *a, int length, int x){ int low = 0, high = length - 1; int mid; while (low <= high){ mid = (low + high) / 2; if (x == a[mid]) return mid; if (x < a[mid]) high = mid - 1; if (x>a[mid]) low = mid + 1; } return -1;}int main(){ int a[] = { 0,1, 2, 3, 4, 5, 6, 7, 8 }; cout << binary_Search(a, 9, 8);}
阅读全文
0 0
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- Mysql基本命令汇总
- sed详解
- define和inline的区别
- C和指针之字符串编程练习8实现char *my_strnchr(char const *str, int ch, int which)
- Coursera机器学习笔记(1)--基础介绍
- 折半查找
- Markdown常用语法
- 在Ubuntu中安装串口调试工具minicom与配置
- 90. Subsets II
- 【head first 设计模式学习笔记】单例模式
- Android IPC之Messenger源码分析
- Spring之装配Bean(一)
- 2017蓝盾高校杯部分WP
- RxJava