解题思路:
注意事项:
#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语言代码)浏览:910 |
钟神赛车 (C语言代码)浏览:868 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:655 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:331 |
A+B for Input-Output Practice (C语言代码)浏览:458 |
剪刀石头布 (C++代码)浏览:1702 |
简单的a+b (C语言代码)浏览:645 |
哥德巴赫曾猜测 (C语言代码)浏览:714 |