#include
using namespace std;
void qsort(int a[10010], int l, int r)
{
int i, j;
//int a[10010]={};
if (l >= r) // 改成>=
return;
i = l;
j = r;
int x = a[l];
do
{
while (a[i] >= x)
{
i++;
if (i == r)
break;
}
while (a[j] <= x)
{
j--;
if (j == l)
break;
}
if (i < j)
swap(a[i], a[j]);
} while (i < j);
a[l] = a[j];
a[j] = x;
qsort(a, l, j - 1);
qsort(a, j + 1, r);
}
int main()
{
int n, a[100];
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
qsort(a, 1, n);
for (int i = 1; i <= n; i++)
cout << a[i] << " ";
}
题目发来可以吗?
什么意思呀
#include <stdio.h>
#include <stdlib.h>
int compar(void const* p1, void const* p2)
{
return (*(int*)p1 - *(int*)p2) * (-1); //前两个实际是整形向加减
}
void show(int a[],int n)
{
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
}
int main()
{
int a[] = { 24,58,62,38,2,74,89 };
int length = sizeof(a) / sizeof(int);
qsort(a, length, sizeof(a[0]), compar);
show(a, length);
}