quicksort.h
来自「比快速排序更快的排序算法;这个了示例包含多种数据结构的算法」· C头文件 代码 · 共 41 行
H
41 行
template
< class T >
int Partition(T a[], int left, int right, int& KCN, int& RMN)
{
int pivotpos = left;
T pivot = a[left]; //枢轴
for (int i = left + 1; i <= right; i++)
if (++KCN && a[i] < pivot && ++pivotpos != i)
{
swap(a[i], a[pivotpos]);
RMN += 3;
}
swap(a[left], a[pivotpos]);
RMN += 3;
return pivotpos;
}
template
< class T >
void QSRecurve(T a[], int left, int right, int& KCN, int& RMN)
{
if (left < right)
{
int pivotpos = Partition < T > (a, left, right, KCN, RMN);
QSRecurve < T > (a, left, pivotpos - 1, KCN, RMN);
QSRecurve < T > (a, pivotpos + 1, right, KCN, RMN);
}
}
template
< class T >
void QuickSort(T a[], int N, int& KCN, int& RMN)
{
KCN = 0;
RMN = 0;
QSRecurve < T > (a, 0, N - 1, KCN, RMN);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?