解题思路:
注意事项:
#include<stdio.h>
#include<stdlib.h>
int partion(int a[], int i, int j)
{
int temp = a[i];
while (i < j)
{
while (temp <= a[j]&&i<j)
{
j--;
}
if (i < j)
{
a[i++] = a[j];
}
while (temp >= a[i]&&i<j)
{
i++;
}
if (i < j)
{
a[j--] = a[i];
}
}
a[i] = temp;
return i;
}
void quicksort(int a[], int i, int j)
{
int k;
if(i < j)
{
k = partion(a, i, j);
quicksort(a, i, k - 1);
quicksort(a, k + 1, j);
}
}
int main()
{
int n,i,*a;
scanf("%d", &n);
a = (int *)malloc(sizeof(int)*n);
if (a == NULL)
return 0;
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
quicksort(a, 0, n-1);
for (i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}
参考代码:
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:987 |
C语言考试练习题_保留字母 (C语言代码)浏览:575 |
A+B for Input-Output Practice (C++代码)浏览:609 |
回文串 (C语言代码)浏览:2860 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:624 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:525 |
简单的a+b (C语言代码)浏览:817 |
水仙花 (C语言代码)浏览:1053 |
1013题解浏览:561 |