快速排序

#include <bits/stdc++.h>

using namespace std;


void QuickSort(int a[],int l,int r)
{
    int mid = a[(l+r)/2];
    int lwalker = l;
    int rwalker = r;
    while (lwalker < rwalker)
    {
        while (a[lwalker] < mid) lwalker++;
        while (a[rwalker] > mid) rwalker--;
        if (lwalker <= rwalker)
        {
            swap(a[lwalker],a[rwalker]);
            lwalker++;
            rwalker--;
            for (int i = 0; i<10; i++)
                    cout << a[i] << " ";
                cout << endl;
        }
    }
    
    if (lwalker < r) QuickSort(a,lwalker,r);
    if (rwalker > l) QuickSort(a,l,rwalker);
}
int main()
{
    int a[] = {0,6,4,2,8,1,5,3,7,9};
    for (int i = 0; i<10; i++)
        cout << a[i] << " ";
    cout << endl;
    QuickSort(a,0,9);
    for (int i = 0;i<10;i++)
    {
        cout << a[i] << " "; 
    }
    cout << endl;
    return 0;
 } 

 

posted on 2017-02-27 14:47  yifi  阅读(154)  评论(0编辑  收藏  举报

导航