有15个数按从大到小的顺序存放在一个数组中, 用折半查找法找出该数是数组的第几个元素的值, 如果该数不在数组中,则输出“无此数”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有15个数按从大到小的顺序存放在一个数组中, 用折半查找法找出该数是数组的第几个元素的值, 如果该数不在数组中,则输出“无此数”相关的知识,希望对你有一定的参考价值。
//2017年7月22日 #include <stdio.h> #define LEN 15 int main(){ int n; void binSearch(int * p,int n); int arr[LEN]={98,97,88,87,76,70,65,54,43,42,39,36,35,31,29}; printf("请输入要查找的数:\n"); scanf("%d",&n); binSearch(arr,n); return 0; } void binSearch(int * p,int n){ int low,high,mid; low=0; high=LEN-1; while(low<=high){ mid=(low+high)/2; if(p[mid]==n) {printf("%d是数组的第%d个元素的值(下标从0开始)\n",n,mid); break;//注意找到该元素之后,就结束循环 } else if(p[mid]>n) low = mid+1; else high = mid-1; } if(low>high) printf("数组中无此数"); }
以上是关于有15个数按从大到小的顺序存放在一个数组中, 用折半查找法找出该数是数组的第几个元素的值, 如果该数不在数组中,则输出“无此数”的主要内容,如果未能解决你的问题,请参考以下文章
单片机汇编:16个数比较大小,按从大到小的顺序进行排列并存放在30H~3FH单元中
将数组8,23,4,16,77,-5,53,100中的元素按从大到小的顺序排列,最少需要交换几次?我知道答案是5次