纯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;
}
全部评论

相关推荐

昨天 14:10
门头沟学院 Java
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务