在一个有序数组中查找具体数字。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个有序数组中查找具体数字。相关的知识,希望对你有一定的参考价值。
要求:查找数组中某一具体数字,并且输出打印其下标。
算法:折算查找算法(二分查找算法)
左下标:int left=0;
右下标:int right=sz-1;
数组中数字个数sz=sizeof(arr)/sizeof(arr[0]);
数组:char arr[]=1,2,3,4,5,6,7,8,9,10;
int med=(right+left)/2;
代码图:
代码:
#include<stdio.h>
int main()
char arr[]=1,2,3,4,5,6,7,8,9,10;
int b=0;
int sz=sizeof(arr)/sizeof(arr[0]);
int left=0;
int right=sz;
printf("请输入要找的数字(1-10以内):");
scanf("%d",&b);
while(left<=right)//保证右大于等于左
int med=(left+right)/2;
if(arr[med]<b)
left=med+1;
else if(arr[med]>b)//arr[med]代表下标对应的具体数字
right=med-1;
else
printf("已找到,其对应的下标为:%d\\n",med);
break;
if(left>right)
printf("找不到\\n");
return 0;
注:要了解具体的算法,才能写好代码。
以上是关于在一个有序数组中查找具体数字。的主要内容,如果未能解决你的问题,请参考以下文章