c++ 快速排序实现

来源:互联网 发布:数控电脑编程软件 编辑:程序博客网 时间:2024/05/02 01:29

排序功能类的声明和实现

#ifndef QUICKSORT_H#define QUICKSORT_Htemplate<typename T>class QuickSort{       T* data;       int length;       void sort(int s,int e);      public:           void run();            QuickSort(T* dt,int l):data(dt),length(l){};            virtual ~QuickSort(){};};template<typename T>void QuickSort<T>::run(){      if(data && length>1)      {            sort(0,length-1);      }}template<typename T>void QuickSort<T>::sort(int s,int e){      if(s<e)      {            T tag=data[e];            T temp=data[e];            int i=s;            for(int j=s;j<e;++j)            {                  if(data[j]<tag)                  {                        temp=data[i];                        data[i]=data[j];                        data[j]=temp;                        ++i;                  }            }            data[e]=data[i];            data[i]=tag;            sort(s,i-1);            sort(i+1,e);      }}#endif // QUICKSORT_H



测试代码

#include <iostream>#include "./include/QuickSort.h"using namespace std;int main(){      char a[]="dsbuvdbif";      //数组长度      int length=9;      QuickSort<char>  qs_int(a,length);      qs_int.run();      for(int i=0;i<length;++i)    cout <<a[i]<< endl;    return 0;}



0 0
原创粉丝点击