// 使用 二分法 折半查找,每次查找少一半数据,效率高
#include <stdio.h> int subscript(char arr[], int x, int y) { int left = 0; int right = x - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] < y) { left = mid + 1; } else if (arr[mid] > y) { right = mid - 1; } else { return mid; } } return -1; } //输入:数组,数组长度,6 //返回:6的下标, 无则-1 int main() { int k = 6; char arr1[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr1) / sizeof(arr1[0]); printf("数组元素个数%d\n", sz); int res = subscript(arr1, sz, k); printf("6的下标:%d\n", res); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)