纯C,写个快排
图片整理
http://www.nowcoder.com/questionTerminal/2de4127fda5e46858aa85d254af43941
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
const int maxnum = 1024;
void qs(char d[], int left, int right)
{
if (left < right) {
int a = d[left];
int l = left;
int r = right;
while (l<r) {
while (l<r&&d[r]>a) r--;
if (l<r) {
d[l] = d[r]; l++;
}
while (l<r&&d[l]<a) l++;
if (l<r) {
d[r] = d[l];r--;
}
}
d[l] = a;
qs(d, left, l - 1);
qs(d, l + 1, right);
}
}
int main()
{
char indata[maxnum];
while(scanf("%s", indata)!=-1){
qs(indata, 0, strlen(indata) - 1);
printf("%s\n", indata);
}
return 0;
}
正浩创新EcoFlow公司福利 754人发布