C++排序(快速排序)

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
    #include <iostream>  
    #define _SZ 10  
    using namespace std;  
      
      
    template<typename _Ty>  
    class Grial  
    {  
        public:  
        Grial(_Ty *_P,int _X=_SZ)  
        {  
            _SP=_X;  
            data = new _Ty[_SP];  
            for(int _I=0;_I<_SP;_I++)  
            {     
                data[_I]=_P[_I];  
            }  
            sort(data,0,_SP);  
        }  
        void view()  
        {  
            for(int _I=0;_I<_SP;_I++)  
            {  
                cout<<data[_I]<<"   ";  
            }  
            cout<<endl;  
        }  
        private:  
        void sort(_Ty *_A,int _L,int _R)  
        {  
                int _I=_L;  
                int _J=_R-1;  
                if(_L>=_R)return;  
                _Ty temp = _A[_I];  
             while(_I<_J)  
                {  
                    while(_I<_J && _A[_J]>=temp)--_J;  
                    _A[_I]=_A[_J];  
      
                    while(_I<_J && _A[_I]<=temp)++_I;  
                    _A[_J]=_A[_I];  
                }  
                _A[_I]=temp;  
                sort(_A,0,_I-1);  
                sort(_A,_I+1,_R);  
        }  
        private:  
        _Ty *data;  
        int _SP;  
    };  
      
    int main()  
    {  
        int a[]={0,4,5,6,7,8,90,5,2,43,2,3,5};  
        Grial<int> g(a,13);  
        g.view();  
        return 0;  
    }  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:PHP计算两个日期的差

下一篇:php给图片加文字水印