快速排序

1,给出一个实现实例.
#include <iostream>
using namespace std;

void QuickSort(int data[], int l, int u)
{
    if (l >= u)
        return;
    int val = data[l];
    int i = l;
    int j = u;
    while (i < j)
    {
        while (data[j] > val && (i < j)) j--;
        if (i < j)
        {
            data[i] = data[j];
            i++;
        }
        while ((data[i] < val) && (i < j)) i++;
        if (i < j)
        {
            data[j] = data[i];
            j--;
        }
    }
    data[i] = val;
    QuickSort(data, l, i - 1);
    QuickSort(data, i + 1, u);
}

int main()
{
    int data[] = {5,8,4,9,3,6,7,2};
    int num = sizeof(data) / sizeof(data[0]);
    QuickSort(data, 0, num-1);
    for (int i = 0;i < num; i++)
        cout << (i? " ":"") << data[i];
    cout << endl;
    return 0;
}

你可能感兴趣的:(J#)