目录
🥑🍓Let's go🍓🥑
🌈🌈一:问题详解
编写代码在一个整形有序数组中查找具体的某个数
要求:找到了就打印数字所在的下标,找不到则输出:找不到。
🌈🌈二:前提条件
1. 查找的数量只能是一个,不能是多个
2.查找的对象在逻辑上必须是有序的
🌈🌈三:解题思路
1.定义一个有序数组。例如 :{1,2,3,4,5,6,7,8,9,10}
2.定义一个需要查找的数。
3.利用while循环在有序数组中查找该数。
🌈🌈 四:解题代码
#include <stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//先定义一个数组
int k = 7;//定义需要查找的数
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 1;
int flag = 0;
while (left <= right)
{
//int mid = (left + right) / 2;
int mid = left + (right - left) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
flag = 1;
printf("找到了,下标为%d\n",mid);
break;
}
}
if (flag == 0)
{
printf("没找到\n");
}
return 0;
}
🌈🌈五:运行结果
🌈🌈六:总结
我们在学习一种算法的时候,光听和空想可能并不怎么能清晰和透彻的认识它,我们应该上手去举几个例子来尝试一下,如若你还觉得不太理解,那就作图吧,这种方法是最直观的,基本上一画就懂。所以作图来学算法是yyds!!!
这份博客👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧👀