分治_递归_quick_sort

来源:互联网 发布:知君用心综琼瑶阅读 编辑:程序博客网 时间:2024/05/21 18:33
#include <cstdio>#include <iostream>using namespace std;void quick_sort(int dat[], int l, int r) {    // 首先请填写下面三个变量的初值    int i = l, j = r, mid =dat[r] ;    do {        while (dat[i] < mid) ++i;        while (dat[j] > mid) --j;        if (i <= j) {            swap(dat[i], dat[j]);            ++i; --j;        }    } while (i < j);    // 接下来请填写第一个递归调用的参数,仔细回顾一下刚刚讲的快速排序算法的思想哈。    if (l < j) quick_sort(dat,l,j);    // 接下来请填写第二个递归调用的参数。    if (i < r) quick_sort(dat,i,r);}int main() {    int dat[10] = {1, 4, 3, 2, 5, 3, 2, 5, 10, 9};    quick_sort(dat, 0, 9);    for (int i = 0; i < 10; ++i)        printf("%d ", dat[i]);    return 0;}
0 0