首页 > 代码库 > 二分法查找
二分法查找
#include<stdio.h>void binary_search(int key, int a[], int n) /*自定义函数binary_search*/{ int low, high, mid, count = 0, count1 = 0; low = 0; high = n - 1; while (low < high) /*当查找范围不为0时执行循环体语句*/ { count++; /*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 次!a[%d]=%d", count, mid, key); /*输出查找次数及所查找元素在数组中的位置*/ count1++; /*count1记录查找成功次数*/ break; } } if (count1 == 0) /*判断是否查找失败*/ printf("查找失败!"); /*查找失败输出no found*/}void main(){ int i, key, a[100], n; printf("请输入数组的长度:\n"); scanf("%d", &n); /*输入数组元素个数*/ printf("请输入数组元素:\n"); for (i = 0; i < n; i++) scanf("%d", &a[i]); /*输入有序数列到数组a中*/ printf("请输入你想查找的元素:\n"); scanf("%d", &key); /*输入要查找的关键字*/ binary_search(key, a, n); /*调用自定义函数*/ printf("\n");}
二分法查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。