快速排序模板
如何将下面的c#快速排序代码翻译成C++代码?
没有写过泛型的快速排序,以前对不同的类型,都写一份代码真的很蛋疼...
没有写过泛型的快速排序,以前对不同的类型,都写一份代码真的很蛋疼...
private void QuickSort<TValue>(T[] keys, TValue[] values, int left, int right, IComparer<T>
comparer)
{
do
{
int index = left;
int num2 = right;
T y = keys[index + ((num2 - index) >> 1)];
do
{
try
{
while (comparer.Compare(keys[index], y) < 0)
{
index++;
}
while (comparer.Compare(y, keys[num2]) < 0)
{
num2--;
}
}
catch (IndexOutOfRangeException)
{
throw new ArgumentException(null, "keys");
}
catch (Exception)
{
throw new InvalidOperationException();
}
if (index > num2)
{
break;
}
if (index < num2)
{
T local2 = keys[index];
keys[index] = keys[num2];
keys[num2] = local2;
if (values != null)
{
TValue local3 = values[index];
values[index] = values[num2];
values[num2] = local3;
}
}
index++;
num2--;
}
while (index <= num2);
if ((num2 - left) <= (right - index))
{
if (left < num2)
{
this.QuickSort<TValue>(keys, values, left, num2, comparer);
}
left = index;
}
else
{
if (index < right)
{
this.QuickSort<TValue>(keys, values, index, right, comparer);
}
right = num2;
}
}
while (left < right);
...全文
相关推荐
基于模板的快速排序 基于模板的快速排序
这展示了如何使用模板化的快速排序函数来对特定的数据结构进行排序。
c++模板类实现快速排序
在C++中,模板类是泛型编程的核心,允许我们编写不依赖具体数据类型的代码。模板类可以用于创建通用的数据结构和算法,如在这个案例中的快速排序。
快速排序算法测试,操作符重载,模板应用
在“模板应用”这部分,可能涉及到使用模板函数或模板类实现快速排序算法,使其能对不同类型的数据进行排序,如整数、浮点数、自定义对象等,无需为每种类型编写单独的排序代码。
Linux静态链接库使用类模板的快速排序算法
本文主要讨论的是在静态链接库中使用类模板实现快速排序算法的问题。快速排序是一种高效的排序算法,其基本思想是分治法。
快速排序模板,有快的也有慢的
在模板中,有quick_sort()和quick_sort_slow(),分别对应不同速度的快排!!快速排序的模板,让你通俗易懂地了解快速排序的基本工作原理!快速排序的模板,让你通俗易懂地了解快速排序


新手乐园
