1.python实现
from math import floor
arr = [1, 2, 3, 4, 5, 6, 8, 9, 10, 11]
left = 0
right = len(arr)-1
res = 7
while (left <= right):
mid = floor((left + right)/2)
if (arr[mid] < res):
left = mid + 1
elif (arr[mid] > res):
right = mid - 1
else:
print(f'找到了,下标为{mid}')
break
if (left > right):
print('找不到')
2.c语言实现
#include <stdio.h>
int main()
{
int arr[10] = {1, 2, 3, 4, 5, 6, 8, 9, 10, 11};
int res = 8;
int rz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = rz - 1;
int mid = (rz - 1 + 0) / 2;
while (left <= right)
{
mid = (left + right) / 2;
if (arr[mid] < res)
{
left = mid + 1;
}
else if (arr[mid] > res)
{
right = mid - 1;
}
else
{
printf("找到了,下标为:%d\n", mid);
break;
}
}
if (left > right)
printf("找不到\n");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)