#include <cstdio>
void binarySearch(int a[],int x,int l,int r)
{
int flag = 0;
while(l<=r)
{
int mid = (l+r)/2;
if(x<a[mid])
{
r=mid-1;
}
else if(x>a[mid])
{
l=mid+1;
}
else
{
printf("postion of x在%d\n",mid);
flag= 1;
break;
}
}
if(flag==0)
printf("x is not exist\n");
}
int part(int a[],int l,int r)
{
int temp = a[l];
while(l<r)
{
while(l<r && a[r]>temp)
r--;
if(l<r)
{
a[l]=a[r];
l++;
}
while(l<r && a[l]<temp)
{
l++;
}
if(l<r)
{
a[r]=a[l];
r--;
}
}
a[l] = temp;
return l;
}
void quickSort(int a[],int l,int r)
{
if(l<r)
{
int q = part(a,l,r);
quickSort(a,l,q-1);
quickSort(a,q+1,r);
}
}
int main()
{
int a[15]= {1,2,3,4,2,10,3,6,8,9};
for(int i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
quickSort(a,0,9);
for(int i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");
binarySearch(a,6,0,9);
for(int i=0;i<11;i++)
printf("%d ",a[i]);
return 0;
}
二分 + 快排
最新推荐文章于 2022-12-06 18:58:58 发布