实现显式算法与内置方法,例如:使用c#或任何其他语言进行排序

实现显式算法与内置方法,例如:使用c#或任何其他语言进行排序,c#,algorithm,sorting,data-structures,C#,Algorithm,Sorting,Data Structures,这是一个关于在哪里以及为什么的一般性问题,当某些算法已经被用作某些语言中的方法时,我们需要实现定制算法例如:在C#中实现自定义排序算法会比使用内置的sort()方法更有效吗定制的算法不会给预先存在的代码增加开销吗?有时,您会对即将遇到的预期数据了解更多,因此,您可以基于这些知识对算法进行微调,以产生比您的框架提供的一般算法更好的可测量的结果 例如,假设您正在对字符串列表进行排序,但在您的特定应用程序中,字符串都将由大量小写字母组成,从a到z。通过为每个字符串编制索引,根据它们的第一个或两个字符的

这是一个关于在哪里以及为什么的一般性问题,当某些算法已经被用作某些语言中的方法时,我们需要实现定制算法

例如:在C#中实现自定义排序算法会比使用内置的sort()方法更有效吗

定制的算法不会给预先存在的代码增加开销吗?

有时,您会对即将遇到的预期数据了解更多,因此,您可以基于这些知识对算法进行微调,以产生比您的框架提供的一般算法更好的可测量的结果

例如,假设您正在对字符串列表进行排序,但在您的特定应用程序中,字符串都将由大量小写字母组成,从
a
z
。通过为每个字符串编制索引,根据它们的第一个或两个字符的值将它们放入数组中的位置,然后仅对其中包含多个项的少数数组索引使用传统排序算法,您可能会获得非常好的性能。还有其他更复杂的算法,在这种情况下也可以提供更好的性能


不过,一般的经验法则是,除非你发现了需要解决的可测量的性能问题,否则你应该使用你得到的。选择的内置算法在几乎所有情况下都具有“足够好”的性能。

好吧,如果您的算法更快,是的。如果没有,我不知道你的其他意思。内置方法不是魔法。它们只是有人已经编写的代码。如果你知道一个比内置方法更有效的算法(针对你的特定场景),你没有理由不去实现它。在我看来,问题是无限的。您是在谈论抽象性能(比如O(n^2)与O(n)),还是在谈论具体数据/机器上的性能,还是关于开发人员的效率,或者其他什么?