|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
void quicksort(int a[] , int left ,int right);
void quicksort(int a[] , int left ,int right)
{
int temp;
int point;
int i=left , j = right;
point = a[(left +right)/2];
while (i <= j)
{
while (a[i] < point)
{
i++;
}
while (a[j] > point)
{
j--;
}
if (i <= j)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
j--; // 这里为什么要 j-- 和 i++ 呢
i++;
}
}
if (left < j)
{
quicksort(a, left, j);
}
if (i < right)
{
quicksort(a , i , right);
}
}
int main()
{
int a[] = {1 , 2 , 7 , 9 ,8 ,6 ,0 ,5 , 4 ,3};
int i, length;
length = sizeof(a)/sizeof(a[0]) ;
quicksort(a, 0 , length);
printf("快速排序的结果是:");
for (i=0 ; i<length ; i++)
{
printf("%d ",a[i]);
}
return 0;
} |
|