题解 | #争夺前五名#
争夺前五名
https://www.nowcoder.com/practice/cd052308a1c44a88ad00255f312c3e14
#include <stdio.h>
void QuickSort(int* a, int left, int right)
{
if (left >= right)
return;
int povit = right;
int key = a[povit];
int begin = left;
int end = right;
while (end > begin)
{ //左找小右边找大
while (end > begin && key <= a[begin])//左
begin++;
a[povit] = a[begin];
povit = begin;
while (end > begin && key >= a[end])//右
end--;
a[povit] = a[end];
povit = end;
}
povit = end;
a[povit] = key;
QuickSort(a, left, povit - 1);
QuickSort(a, povit + 1, right);
}
int main()
{
int n, i;
scanf("%d", &n);
int a[100] = { 0 };
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
QuickSort(a, 0, n - 1);
for (i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
return 0;
}
安克创新 Anker公司福利 864人发布