您的位置:首页 > 编程语言 > C语言/C++

c语言快排(快速排序)poj2388《学习记录》

2015-07-22 20:16 260 查看
坑爹啊这道题,开始说的一万头牛,我就忘了,想的牛场顶死1000头,runtime error半天,我还以为超时了,各种纠结
虽然这个排序有点复杂,但是他有点太多了,很多做题的网站上的排序一般的都没法过,所以就喜欢上了快排了,速度快啊
<pre name="code" class="plain">#include<stdio.h>
void sort(int a[],int low,int high);
void shuru(int arr[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
}
void main()
{
int arr[10000],
i=0,m,n;
scanf("%d",&n);
shuru(arr,n);
m=n-1;
sort(arr,0,m);
printf("%d",arr[m/2]);
printf("\n");
}
void sort(int a[],int low,int high)
{
int i = low;
int j = high;
int temp = a[i];
if( low < high)
{
while(i < j)
{
while((a[j] >= temp) && (i < j))
{
j--;
}
a[i] = a[j];
while((a[i] <= temp) && (i < j))
{
i++;
}
a[j]= a[i];
}
a[i] = temp;
sort(a,low,i-1);
sort(a,j+1,high);
}
else
{
return;
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息