...要求用折半查找法找出该数是数组中的几个元?

发布网友 发布时间:2024-10-24 09:33

我来回答

2个回答

热心网友 时间:4小时前

C的话可以这么写——

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){

int a[10],i,j,k,r,l,m;

printf("Enter 10 integers...\n");

for(i=0;i<10;scanf("%d",a+i++));//输入10个整数

for(i=0;i<10;i++){//由大到小排序并输出

for(k=i,j=k+1;j<10;j++)

if(a[k]<a[j])

k=j;

if(k-i)

j=a[k],a[k]=a[i],a[i]=j;

printf("%d ",a[i]);

}

printf("\nEnter a number...\nk=");

scanf("%d",&k);//输入要查找的数

l=0,r=9;//以下二分查找

while(m=(l+r)>>1,l<r && a[m]-k)

a[m]>k ? l=m+1 : r=m-1;

if(a[m]==k)

printf("%d is in a[%d].\n",a[m],m);

else

printf("No find %d...\n",k);

return 0;

}

热心网友 时间:4小时前

用java的scanner类来通过控制台输入10个数,存入数组中,循环排序,在输入一个数,循环数组,二分法,判断中间的数和输入的数哪个大,大就往前再比,小就往后再比

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com