解题思路:
注意事项:
#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语言代码)浏览:1553 |
川哥的吩咐 (C++代码)浏览:1076 |
拆分位数 (C语言代码)浏览:1361 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:693 |
简单的a+b (C语言代码)浏览:661 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:582 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:592 |
格式化数据输出 (C语言代码)浏览:882 |
C语言程序设计教程(第三版)课后习题10.7 (用指针求解)浏览:1542 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:593 |