[英]C++ qsort algorithm for C#?
我正在尝试将一些旧的 C/C++ 代码移植到 C#/Unity。 在几个地方,我调用了 qsort 函数。 下面是一个例子:
qsort((void *) CardSort, NumCards, sizeof (CardSort[0]), SortFunction);
其中 SortFunction 是指向我自己的标准函数的指针。 这是一个例子:
int SortFunction (const void * a, const void * b)
{
int i, j, iValue, jValue;
memcpy (&i, a, 2);
memcpy (&j, b, 2);
iValue = TrickValue (i, GetSuit (i));
jValue = TrickValue (j, GetSuit (j));
return (iValue - jValue);
}
这只是我需要导入的几个示例之一。 我尝试使用快速排序算法(枢轴、左、右)来复制它,但我需要修改它的每个实例以反映我不同的 SortFunction。 每一个都是一种痛苦。
我只想编写自己的 qsort 例程,这样我就可以简单地拉入我的代码不变,但我无法在网上找到示例。 由于我对原始 qsort 的内部运作一无所知,我希望这里有人可以帮助我。
简而言之:是否有 C# 实现,或者有人可以指导我编写自己的实现,复制 C/C++ qsort 的功能?
qsort 是Array.Sort()
实现,C# 中的 AFAIK Array.Sort()
是 QuickSort 实现。 有几种重载,但我认为您正在寻找一种采用键数组和值数组的重载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.