#include"math.h"
main()
{static int i,j,m,a[15]={1,4,9,13,21,34,55,89,144,233,377,570,671,703,812};
scanf("%d",&m);
for(j=0;j<15;j++)
printf("%4d",a[j]);
printf("\n");
i=7;
while(fabs(i-7)<8)
{if(m<a[7])
{if(a[i]-m==0)
{printf("it is at (%d)\n",i+1);break;}i--;}
else if(m>a[7])
{if(a[i]-m==0)
{printf("it is at (%d)\n",i+1);break;}i++;}
else
printf("8\n");
}
if(fabs(i-7)-8==0)
printf("There is not\n");
}
求解释, 谢谢了
有15个数按小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法...
比如给一个4的数,程序第一步从数组中取出排在中间数的数(i=7),即第8个数89.用89和4比较。如果大于89就往后循环查找,即查找89后的{144,233,377,570,671,703,812},如果小于89就往前查找,即查找89前的]{1,4,9,13,21,34,55},不管往前还是往后最大循环次数都是7,所以while循环结束条件是(fabs(i-7)...
用二分法查找(折半查找)java
public class BinarySearch2 {public static void main(String[] args) {\/\/ 生成一个随机数组 int[] array = suiji();\/\/ 对随机数组排序 Arrays.sort(array);System.out.println("产生的随机数组为: " + Arrays.toString(array));System.out.println("要进行查找的值: ");Scanner input...
有15个数按大由小顺序存放在一个数组中,输入一个数,要求用折半查找法...
main(){ int a[15]={x.x.x.x.x.x.x.x.x.x.x.x.x.x.x};\/\/x为输入的十五个数\/\/ int b;printf("enter the number:");scanf("d%,&b");---我下线了
c语言:编写程序,在有序的数列中查找某数,若该数在此数列中则输出它的...
题目:试编写一个程序完成:有15个数按从下到大的顺序存放在一个数组中.输入一个数,要求折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,输出“不在表。===下面是C代码,其中数组没有设计为录入,而是固定数组=== \/\/输出的序列是从0开始算的,也就是输出的是所在数组的索引...
有15个数按大由小顺序存放在一个数组中,输入一个数,要求用折半查找法...
{cout<<"输入"<<15-m<<"个由大到小数"<<endl; cin>>a[m];} cout<<"输入要查找的数"<<endl; cin>>n; k=n\/2; bool falg=false; for(m=0;m<15;m++) { if(k==a[m]) {cout<<"该数再数组中的位置是:"<<m+1<<endl; falg=true;} if(!falg) cout<<"查无此数"<<endl;} syste...
...大到小的顺序存放在一个数组中,输入一个数,要求用拆半查找法找出该...
\/ z有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用拆半查找法找出该数是数组中的第几个元素.\/ include"math.h"main(){ static int i,j,m,a[15]={1,4,9,13,21,34,55,89,144,233,377,570,671,703,812};scanf("%d",&m);for(j=14;j>=0;j--)printf("%4d",...
...由大到小排列,输入一个数,运用折半查找法找出该数是第几个数。_百 ...
void main(){ int i,number,top,bott,mid,loca,a[N],flag=1,sign;char c;printf("由大到小输入15个数 :\\n");for(i=0;i<N;i++){ scanf("%d",&a[0]);i++;while(i!=-1&&i<N){ scanf("%d",&a[i]);if(a[i]<a[i-1])i++;else {printf("输入有误,请重新输入:\\...
c语言编程实现“折半查找”的过程。
折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元素必须有序。参考程序,希望对你有所帮助!include<stdio.h> void main(){ int a[20],x,i,start,end;printf("input 20 numbers:\\n");for(i=0;i<20;i++) scanf("%d",&...
c语言怎么使用折半法
int a[]={89,99,122,220,250,260,400};\/\/如果返回right的值,说明没找到int half_find(int a[], \/\/查找数组 int left, int right, \/\/起始位置 int target) \/\/查找目标{ int pos = right; while (left < right) { int mid = left + (right-left)\/2; if (a[mid] > target...
c语言的折半查找法
你的数组的索引为0-14 所以你可以设两个变量 这两个变量a,b是用来限制你要的数的范围的 一开始a=0 b=14 接着取索引为int((a+b)\/2 )的元素与你输入的比较 如果比输入的小的话那么设a=int(a+b)\/2 )接着继续取索引为int((a+b)\/2 )的元素与你输入的比较 如果比输入的大...