用C语言实现一个代码,主函数是生成n个数,并调用函数实现排序跟二分查找
答案:1 悬赏:60
解决时间 2021-02-16 17:06
- 提问者网友:萌萌小主
- 2021-02-15 20:46
用C语言实现一个代码,主函数是生成n个数,并调用函数实现排序跟二分查找
最佳答案
- 二级知识专家网友:温柔刺客
- 2021-02-15 21:41
//使用quicksort算法进行排序,BinarySearch算法搜索
#include
int quick(int* a,int l,int r)
{
int temp=a[l];
while(l
{
while(a[r]>=temp&&l
r--;
a[l]=a[r];
while(a[l]
l++;
a[r]=a[l];
}
a[l]=temp;
return l;
}
void quicksort(int* a,int l,int r)
{
int mid;
if(l
{
mid=quick(a,l,r);
quicksort(a,l,mid);
quicksort(a,mid+1,r);
}
}
int BinarySearch(int* a,int l,int r,int key)
{
int mid;
while(l<=r)
{
mid=(l+r)/2;
if(keya[mid])
l=mid+1;
else
return mid;
}
return -2;
}
int main()
{
int n,key,i;
int a[100];
scanf("%d",&n);
for(i=0;i
scanf("%d",&a[i]);
quicksort(a,0,n-1);
printf("排序后:\n");
for(i=0;i
printf("%d ",a[i]);
printf("\n输入查找的关键字:");
scanf("%d",&key);
printf("位置第%d处",BinarySearch(a,0,n-1,key)+1);
return 0;
}
#include
int quick(int* a,int l,int r)
{
int temp=a[l];
while(l
while(a[r]>=temp&&l
a[l]=a[r];
while(a[l]
a[r]=a[l];
}
a[l]=temp;
return l;
}
void quicksort(int* a,int l,int r)
{
int mid;
if(l
mid=quick(a,l,r);
quicksort(a,l,mid);
quicksort(a,mid+1,r);
}
}
int BinarySearch(int* a,int l,int r,int key)
{
int mid;
while(l<=r)
{
mid=(l+r)/2;
if(keya[mid])
l=mid+1;
else
return mid;
}
return -2;
}
int main()
{
int n,key,i;
int a[100];
scanf("%d",&n);
for(i=0;i
quicksort(a,0,n-1);
printf("排序后:\n");
for(i=0;i
printf("\n输入查找的关键字:");
scanf("%d",&key);
printf("位置第%d处",BinarySearch(a,0,n-1,key)+1);
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯