在一个有序数组中查找具体数字。

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;

代码图:

在一个有序数组中查找具体数字。_数组

在一个有序数组中查找具体数字。_二分查找算法_02

在一个有序数组中查找具体数字。_#include_03

在一个有序数组中查找具体数字。_数组_04

代码:

#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;

注:要了解具体的算法,才能写好代码。

以上是关于在一个有序数组中查找具体数字。的主要内容,如果未能解决你的问题,请参考以下文章

写代码可以在整型有序数组中查找想要的数字

C语言编程 在整型有序数组中查找想要的数字并且返回下标

行列有序的二维数组查找

LeetCode 34 Search for a Range (有序数组中查找给定数字的起止下标)

记某公司面试算法题:查找一个有序数组某个数字出现的次数

记某公司面试算法题:查找一个有序数组某个数字出现的次数