- 论坛徽章:
- 0
|
程序如下
#include <stdio.h>
void qsort(int a[],int left,int right)
{
int l,r,p,t;
l=left;
r=right;
p=a[(l+r)%2];
while (l<=r)
{
while (a[l]<p)
l++;
while (a[r]>p)
r--;
if (l<=r)
{
t=a[l];
a[l]=a[r];
a[r]=t;
l++;
r--;
}
}
if (left<r)
qsort(a,left,r);
if (right>l)
qsort(a,l,right);
}
int main()
{
int a[5],i;
printf("input 5 integers to test qsort.\n");
for (i=0;i<=4;i++)
scanf("%d",&a);
qsort (a,0,4);
for (i=0;i<=4;i++)
printf("%d ",a);
return 0;
}
编译能过,测试了几组数据,有些能过(比如{645,456,65,165,165}或{3,3,3,3,3}),有些出现segmentation fault。
我用的是ubuntu8.04+code::blocks。
[ 本帖最后由 malloc66 于 2009-1-31 16:24 编辑 ] |
|