初识C语言之二维数组(下)

一.二分查找(折半查找)

①题目描述:在有序数组中查找n

②前提:该数组是有顺序的

③代码实现:

#include<stdio.h>

int main()

{

int k=0;//定义一个变量并且初始化为零

scanf("%d",&k);//键盘输入要查找的数字

int sz=sizeof(arr)/sizeof(arr[0]);//计算数字的个数

int left=0;//定义一个变量为数字最左边的值

int right=sz-1;//定义一个变量为数字最右边的值

while(left<=right)//当左数小于等于右数时,触发循环

{

int mid=(left+right)/2;//定义变量为中间数

if(arr[mid]>k)//当中间数大于k

{

right=mid-1;//将中间值减一赋给右值

}

if(arr[mid]<k)

{

left=mid+1;

}

if(arr[mid]=k)//当中值刚好等于k

{

printf("找到了,下标为%d",mid);

break;//结束循环

}

}

if(left>right)

{

printf("找不到");

}

return 0;

}

相关推荐
SHOJYS6 分钟前
思维难度较大 贪心优化背包 [USACO22DEC] Bribing Friends G
数据结构·算法·深度优先
啊董dong6 分钟前
课后作业-2025年12月07号作业
数据结构·c++·算法·深度优先·noi
无限进步_26 分钟前
C语言宏的魔法:探索offsetof与位交换的奇妙世界
c语言·开发语言·windows·后端·算法·visual studio
代码雕刻家29 分钟前
C语言关于换行符的注意事项
c语言·开发语言
Lucky“经营分析”35 分钟前
经营分析师-《经营分析能力》
算法
狐5737 分钟前
2025-12-04-LeetCode刷题笔记-2211-统计道路上的碰撞次数
笔记·算法·leetcode
咕咕嘎嘎102444 分钟前
C/C++内存对齐
java·c语言·c++
缘三水1 小时前
【C语言】14.指针(4)
c语言·开发语言·指针·语法
listhi5201 小时前
激光雷达点云拟合中的ICP(迭代最近点)算法
算法
持续学习的程序员+11 小时前
强化学习阶段性总结
人工智能·算法