利用二分法从有序表中查找某个数值-C语言
2017-11-27 17:57
218 查看
/**二分法查找有序表(从小到大)中的某个值**/ #include <stdio.h> #include <stdlib.h> int binary_search(int key, int *a, int n) { int i,low,high,mid,count=0; low = 0; high = n-1; while(low<high) //查找范围不为0时,进行循环 { count++;//记录查找次数 mid = (low + high)/2;//中间位置 if(key<a[mid])//key值小于中间值时 { high = mid - 1;//确定左子表范围 } else if(key>a[mid])//key值大于中间值时 { low = mid + 1;//确定右字表的范围 } else if(key == a[mid])//key值等于中间值时 { printf("查找成功!\n第%d次查找成功!\na[%d]=%d\n", count, mid, a[mid]); count1++; break; } } if (0==count1) { printf("查找失败!\n"); } return 0; } int main() { int i,j,len,key=0; int *a; printf("请输入需要查找的序列元素的个数:\n"); scanf("%d", &len ); a = (int *)malloc(sizeof(int) * len); printf("请输入需要查找的序列:\n"); for(i=0;i<len;i++) { scanf("%d", &a[i]); } printf("请输入需要查找的数值:\n"); scanf("%d", &key); binary_search(key, a, 10); free(a); return 0; }
相关文章推荐
- 利用二分法查找有序数组中某一元素
- 定义数组为有序数组模型,并利用二分法进行查找,删除特定值(缺点:只能删除一个值,若有相同的值,则删除第一个)
- 有序数组二分法查找数值
- abap中利用BINARY SEARCH 二分法查找内表记录时注意项
- 二分法查询,只适合有序但不连序的队列的查找。
- 有序顺序存储线形表的二分法查找
- C语言实现顺序表和有序表的查找以及有序表的递归查找
- 查找一个有序数组中的一个元素——二分法
- C语言 二分法查找之面试题
- 二分法查找一组有序数
- 利用二分法查找数据中的字串JAVA
- 迭代用在有序数组二分法查找中,递归的二分法查找更简洁,但速度可能会慢一点
- php 二分法查找数组中某数值 案例分析
- .写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)C语言
- 二分法实现一个整形有序数组的二分查找
- 利用函数进行二分法查找
- 二分法的应用----------利用随机类生成数组,并用二分法对数组的元素进行查找以及插入操作
- 有序数组的二分法查找关键字
- N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置,若找到,则输出其下标值;反之,则输出 “Not be found”
- 二分法的查找有序数中的一个数