一.二分查找(折半查找)
①题目描述:在有序数组中查找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;
}