数据结构—快速排序

#include

 

using namespace std;

 

template

void QuickSort(T* a,const int left,const int right);

 

int main()

{

    int k[]={8,6,4,2,0,1,3,5,7,9,99};    //最后一个数无效,特别加上

    for(int i=0;i<9;i++)

        cout<<k[i]<<" ";

    cout<<endl;

    QuickSort(k,0,9);

    for(int i=0;i<9;i++)

        cout<<k[i]<<" ";

    cout<<endl;

    return 0;

}

 

template

void QuickSort(T* a,const int left,const int right)

{

    //选枢轴进行划分

    int i=left;

    int j=right+1;

    int pivot=a[left];

    if(left

    {

        do

        {

            do i++;

                while(a[i]

            do j--;

                while (a[j]>pivot);

            if(i

                swap(a[i],a[j]);

        }while(i

        swap(a[left],a[j]);

        QuickSort(a,left,j-1);

        QuickSort(a,j+1,right);

    }

}

 

运行结果:

 

数据结构—快速排序

posted @ 2016-04-15 13:16  硫酸亚铜  阅读(123)  评论(0编辑  收藏  举报