C++ 快速排序代码
来源:互联网 发布:linux打包jar文件 编辑:程序博客网 时间:2024/06/06 01:23
自己写的C++快速排序代码
//Quick排序
class Quick_Sort
{
public:
Quick_Sort();
~Quick_Sort();
public:
template <class T>
static int Partition(T *arry, const int start, const int finish);
template <class T>
static void QuickSort(T *arry, const int start, const int finish);
template <class T>
static void swap (T* _target, T* _source, const unsigned size);
};
Quick_Sort::Quick_Sort()
{
}
Quick_Sort::~Quick_Sort()
{
}
//对数组进行划分
template <class T>
int Quick_Sort::Partition(T *arry, const int start, const int finish)
{
unsigned TSize = sizeof(T);
int i = start - 1;
T key = arry[finish];
for (int j = start; j < finish; j++)
{
if (arry[j] <= key)
{
i++;
swap(arry + i, arry + j, TSize);
}
}
swap(arry + i + 1, arry + finish, TSize);
return i + 1;
}
//快排
template <class T>
void Quick_Sort::QuickSort(T *arry, const int start, const int finish)
{
if (start < finish)
{
unsigned pivot = Partition(arry, start, finish);
QuickSort(arry, start, pivot - 1);
QuickSort(arry, pivot + 1, finish);
}
}
//交换值
template <class T>
void Quick_Sort::swap (T* _target, T* _source, const unsigned size)
{
if (sizeof(T) < 128)
{
T temp;
temp = *_target;
*_target = *_source;
*_source = temp;
}
else
{
T* _temp = 0;
try
{
_temp = (T*)::operator new (size);
}
catch (bad_alloc& baRef)
{
cerr << "Error in Swap function: Can't allocate memory: " << baRef.what() << endl;
throw;
}
memcpy (_temp, _target, size);
memcpy (_target, _source, size);
memcpy (_source, _temp, size);
::operator delete (_temp);
_temp = 0;
}
}
- 快速排序 C代码
- c代码--快速排序问题
- c代码--快速排序问题
- 快速排序C语言代码
- c语言快速排序代码
- Objective-C 快速排序代码
- 【排序】 快速排序代码-C语言版
- 快速排序的C语言代码实现
- 快速排序的C语言代码实现
- 快速排序的C语言代码实现
- 快速排序 qsort c语言代码
- 快速排序的C语言代码实现
- 快速排序算法C,JAVA代码
- C语言快速排序算法代码分析
- 编程算法 - 快速排序算法 代码(C)
- C语言快速排序算法及代码
- 优化快速排序 C语言代码
- 快速排序的c语言实现代码
- 1.el表达式入门
- OMRON NB7触摸屏添加.h头文件
- 各种类型的文件在ASP.NET中对应的输入类型
- 国际歌
- android中JNI的使用
- C++ 快速排序代码
- 22.黑马程序员-模版方法模式
- 手机智能卡的操作系统——COS技术概述
- 小存款计算器
- 通过两点经纬度计算距离
- ORA-29701: unable to connect to Cluster Manager
- ARM在汇编代码中的调用
- Windows消息机制流程
- 将字符串中的多个空格合并为一个空格