二分法查找的C语言实现:
2015-05-11 09:05
302 查看
#include <stdio.h> int binSearch(int, int, int); main() { int i, n = 10, x = 7; //这里假设把数组a[]定义为a ,是错误的,不能定义变长数组。 int a[10]; printf("Please enter your num:/n"); //从标准输入给数组赋值的唯一方法:用for循环 for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("The %d can be found in the arr, it is %dth of the arr/n", x, binSearch(x,a,n)); } /*第一种方法,推断都在循环内*/ int binSearch(int x, int a[], int n) { int low, high, mid; low = 0; high = n-1; //注意,这里必须用<=, 用<不正确,一直返回-1 while(low <= high) { mid = (low + high) / 2; if(x < a[mid]) high = mid - 1; else if(x > a[mid]) low = mid + 1; else return mid; } return -1; } /*在循环内运行一次測试的方法*/ /*int binSearch(int x, int a[], int n) { int low, high, mid; low = 0; high = n-1; mid = (low + high) / 2; while((low <= high)&&(a[mid]!=x)) { if(x < a[mid]) high = mid -1; else low = mid + 1; mid = (low + high) / 2; } if(a[mid] == x) return mid; else return -1; } */
时间复杂度 log2n
相关文章推荐
- 二分法查找C语言实现
- 二分法查找(C语言实现)
- 查找与排序之二分法查找篇(C语言实现)
- 【C语言】二分法实现数组查找
- C语言实现二分法查找
- 用c语言实现二分法查找表格【数据结构】
- C语言实现顺序表和有序表的查找以及有序表的递归查找
- C语言:动态链表的建立,查找,删除,插入功能的实现
- linux c语言 打开目录 查找文件 c语言 实现
- C语言的二分法查找
- c语言模糊查找功能的设计与实现
- 递归实现二分法查找----python
- c语言:单链表的实现(一) 创建,插入,删除,查找
- C语言中用bsearch()实现查找操作
- 二分查找C语言实现
- 二分法 一元非线性方程求根 C语言实现
- 【C语言】编写函数实现二分查找
- c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)
- python实现二分法查找
- 在链表中获取一个数据、查找操作C语言实现