解题思路:
注意事项:
#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二级辅导-同因查找 (C语言代码)浏览:562 |
C语言训练-舍罕王的失算 (C语言代码)浏览:1033 |
数列 (C++代码)浏览:664 |
川哥的吩咐 (C语言代码)浏览:874 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:655 |
C语言程序设计教程(第三版)课后习题9.4 (Java代码)浏览:1417 |
【回文数(二)】 (C语言代码)浏览:730 |
字符串对比 (C语言代码)浏览:1403 |
简单的a+b (C语言代码)浏览:530 |
【简单计算】 (C语言代码)浏览:622 |