您的位置:首页 > 编程语言 > C语言/C++

c++ 快速排序实现

2014-08-25 16:23 204 查看
排序功能类的声明和实现

#ifndef QUICKSORT_H
#define QUICKSORT_H

template<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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: