实现二分查找 首先要知道 二分查找是什么 如何应用在实际工程中
二分查找是在一组由有序数中 利用数组小标 左右下边求和的中间值与实际的要查找的数字比较 这种查找也称折半查找 与传统的查找遍历查找相比 优化了代码 简便的算法 使运行效率变高了
代码如下 有什么不懂的大家可以评论哦
#include<stdio.h> int binary_search(int arr[], int k, int sz) { int right = sz-1; int left = 0; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] > k) { right = mid - 1; } else if (arr[mid] < k) { left = mid +1; } else { return mid;//返回找到的值 } } return -1;//未找到 } int main() { int k = 7;//目标查找 int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr) / sizeof(arr[0]);//计算有几个元素 int pos = binary_search(arr, k, sz); if (-1 == pos) printf("找不到\n"); else printf("找到了,下标是:%d\n", pos); return 0; }
运行结果 如下