网上做网站怎么做下拉菜单,快速建设网站视频,郑州资讯,网站限时抢购怎么做【C语言】数组练习 练习1#xff1a;多个字符从两端移动#xff0c;向中间汇聚练习2、二分查找 练习1#xff1a;多个字符从两端移动#xff0c;向中间汇聚
编写代码#xff0c;演示多个字符从两端移动#xff0c;向中间汇聚 练习2、二分查找
在⼀个升序的数组中查找指… 【C语言】数组练习 练习1多个字符从两端移动向中间汇聚练习2、二分查找 练习1多个字符从两端移动向中间汇聚
编写代码演示多个字符从两端移动向中间汇聚 练习2、二分查找
在⼀个升序的数组中查找指定的数字n很容易想到的方法就是遍历数组但是这种方法效率比较低。 比如我买了⼀双鞋你好奇问我多少钱我说不超过300元。你还是好奇你想知道到底多少我就让 你猜你会怎么猜你会1234…这样猜吗显然很慢⼀般你都会猜中间数字比如150然 后看大了还是小了这就是⼆分查找也叫折半查找。查找的前提是数据是有序的
下面是代码示例
#include stdio.h
int main()
{int arr[] { 1,2,3,4,5,6,7,8,9,10 };int left 0;int right sizeof(arr) / sizeof(arr[0]) - 1;int key 3;int mid 0;int find 0;while (left right){mid (left right) / 2;if (arr[mid] key){right mid - 1;}else if (arr[mid] key){left mid 1;}else{find 1;break;}}if (1 find){printf(恭喜您找到了下标是%d\n, mid);}else{printf(找不到\n);}return 0;
}