#include <bits/stdc++.h>
using namespace std;
void qsort(int a[], int p, int q)//将数组内的数据排序
{
int i=p, j=q, sum=a[p];
if(i>=j) return;
while(i<j)
{
while(i<j&&a[j]>=sum) j--;
if(i<j) {
a[i] = a[j];
}
while(i<j&&a[i]<=sum) i++;
if(i<j){
a[j]=a[i];
}
}
a[i] = sum;
qsort(a, p, i-1);
qsort(a, i+1,q);
}
int Find(int a[], int p, int q, int sum)//查找数组内是否有数值sum;
{
int t = p, s = q, mid;
while(t<=s)
{
mid = (t+s)/2;
if(a[mid]==sum) return 1;
else if(a[mid]>sum) s = mid-1;
else t = mid+1;
}
return 0;
}
int main()
{
int i, a[15], n, m;
cin>>n;
for(i = 0; i<n; i++)
{
cin>>a[i];
}
qsort(a,0,n-1);
for(i = 0;i<n; i++)
{
cout<<a[i]<<endl;
}
cout<<"Please input:"<<endl;
for(i = 0; i<3; i++){
cin>>m;
cout<<Find(a,0,n-1,m)<<endl;
}
return 0;
}
快排与二分查找并用
最新推荐文章于 2024-03-13 23:04:50 发布