二分查找算法
// // BinarySearch.c // libin // // Created by 李宾 on 16/4/28. // Copyright © 2016年 李宾. All rights reserved. // #include <stdio.h> //非递归 int Binary_Search(int a[], int low, int high, int key) { while (low <= high) { int mid = (low + high)/2; if(a[mid] == key) { return mid; } else if(a[mid] < key) { low = mid + 1; } else high = mid - 1; }
return -1; } //递归 int Binary_Search1(int a[], int low, int high, int key) {
if(low > high)
{
return -1;
}
int mid = (low + high)/2;
if (a[mid] == key )
{ return mid; } else if(a[mid] < key) { return Binary_Search1(a, mid+1, high, key); } else return Binary_Search1(a, mid, high-1, key); } } int main() { int a[6] = {1, 23, 33, 45, 56, 65}; Binary_Search1(a, 0, 5, 34); }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步