二分法查找

#include <stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 7;
int left = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
int right = sz - 1;

while (left <= right)
{
int mid = (right - left) / 2 + left;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
printf("找到了,下表为是:%d\n", mid);
break;
}

}
if (left > right)
{
printf("找不到");
}
return 0;
}
全部评论
这个算是高频的手撕题目了
点赞 回复 分享
发布于 01-25 22:41 陕西

相关推荐

📍面试公司:虾皮🕐面试时间:1.06💻面试岗位:后端开发❓面试问题:1.&nbsp;自我介绍2.&nbsp;实习介绍3.&nbsp;&nbsp;对kafka了解多少4.&nbsp;如何保证消息不丢失5.&nbsp;消息幂等怎么保证的6.&nbsp;消息有序性怎么保证7.&nbsp;kafka是支持水平扩展的,那么我可以无限增加consumer数量去增加消费能力吗8.&nbsp;消费者数量大于分区数量会出现什么情况9.&nbsp;他会竞争吗,怎么竞争的呢10.&nbsp;kafka里面有一种leader和fowller这种概念,他的leader是怎么选举的,如果leader挂了,之后怎么选举,举一个例子11.&nbsp;kafka是支持多分区的,他是保证所有partition都写成功后返回,还是自己写成功后就返回,就认为成功了12.&nbsp;你们mysql用的那种存储引擎13.&nbsp;innodb和myisam的区别14.&nbsp;事物的四大特性怎么实现的15.&nbsp;binlog日志的作用16.&nbsp;redolog日志的呢17.&nbsp;MVCC机制的原理18.&nbsp;MVCC能解决幻读的问题吗19.&nbsp;执行一条select语句时mysql内部执行的过程20.&nbsp;在哪一阶段判断要不要走索引、21.&nbsp;什么情况下不会走索引22.&nbsp;怎么分析SQL的执行计划23.&nbsp;实习中redis怎么用的24.&nbsp;redis持久化机制25.&nbsp;你们redis用的单机还是集群,单机的话有什么问题26.&nbsp;集群跟单机或主从的区别27.&nbsp;集群支持多DB吗28.&nbsp;集群怎么保证可靠性的29.&nbsp;集群能解决那种大key问题吗30.&nbsp;像一个key可能会比较大,比如一个userId下面挂了很多信息,它在单机和集群的表现是什么样子31.&nbsp;我有一个一亿个数据的文件,每一行他是一个数字这样,怎么把这个文件里的数据排序32.&nbsp;手撕:打家劫舍首尾相连版33.&nbsp;反问
发面经攒人品
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务