自己写的标准qsort

#include <stdio.h>

void qsort(int a[], int s, int e) {
    if(s >= e) {
        return;
    }
    int i = s, j = e, t = 0;
    while (i < j) {
        while (i < j && a[j] > a[s]) {
            --j;
        }
        while (i < j && a[i] >= a[s]) {
            ++i;
        }
        t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    t = a[i];
    a[i] = a[s];
    a[s] = t;
    qsort(a, s, i - 1);
    qsort(a, i + 1, e);
}

#define NUM 10
int main(int argc, char **argv) {
    int a[NUM] = {9, 2, 6, 3, 5, 0, 8, 7, 4, 1};
    qsort(a, 0, NUM - 1);
    for (size_t i = 0; i < NUM; ++i) {
        fprintf(stdout, "%d ", a[i]);
    }
    fprintf(stdout, "\n");
}

//没有编译,如有写错请见谅。

你可能感兴趣的:(qsort)