二分查找(C语言)
来源:互联网 发布:android源码 编辑:程序博客网 时间:2024/05/17 04:29
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。
算发要求:
1)必须采用顺序存储结构
2)必须按关键字大小有序排列。
#include<stdio.h>int binarySearch(const int *array, int start, int end, int key);int main() { int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};int result = binarySearch(a, 0, 8, 10);printf("%d\n", result); return 0;}/*// recursiveint binarySearch(const int *array, int start, int end, int key) { int left, right;int mid; left = start;right = end;mid = (left + right)/2;if (left > right) return -1;else if (key == array[mid]) return mid;else if (key < array[mid]) return binarySearch(array, left, mid-1, key); // return 没有用到else if (key > array[mid]) return binarySearch(array, mid+1, right, key);}*/// iterationint binarySearch(const int *array, int start, int end, int key) {int left, right;int mid; left = start; right = end;while (left <= right) { mid = (left + right)/2;if (key == array[mid]) return mid;else if (key < array[mid]) right = mid -1;else if (key > array[mid]) left = mid +1;}return -1;}
0 0
- C语言:二分查找
- 【c语言】二分查找
- C语言 二分查找
- 二分查找 C语言
- 二分查找(C语言)
- C语言二分查找
- 二分查找C语言
- 二分查找(C/C++语言)
- C语言实现二分查找
- 二分查找 c语言实现
- 二分查找C语言实现
- C语言实现二分查找
- 【C语言】二分查找法
- 【C语言】二分查找法
- C语言二分查找法
- C语言之二分查找
- c语言 实现二分查找
- c语言二分查找算法
- Linux 密码验证
- ArrayList之三种迭代方法
- HTML滚动文字代码 marquee标签
- Java包装类(Wrapper)、基本数据类型、String类之间的转换
- 树(理论篇)
- 二分查找(C语言)
- linux百度云工具baidu pcs
- jdk 安装 linux
- php 读取sqlserver 2008 image类型(二进制)字段被截断问题(mssql.textsize)
- 慕课响应式小细节
- spring与hibernate整合之HibernateDAOSupport
- Suppressed: java.lang.ClassNotFoundException: android.support.v7.internal.widget.ActionBarContainer
- HDU 2602 Bone Collector(01背包)
- ArcGIS API for Android解惑:Callout不能调整弹出框大小