当一些算法已经作为某些语言的方法提供时,我们需要实现自定义算法,这是在哪里以及为什么的一般性问题。
例如:在C#中实现自定义排序算法比使用内置sort()方法更有效吗?
自定义算法不会增加预先存在的代码的开销吗?
答案 0 :(得分:4)
在某些情况下,您可能会更多地了解您将要遇到的预期数据,因此您可以根据这些知识对算法进行微调,从而生成比通用算法更好的算法。与您的框架一起提供。
例如,我们假设您要对字符串列表进行排序,但在您的特定应用程序中,字符串都将由来自{{1}的大量小写字母组成。通过a
。你可以通过索引每个字符串,根据第一个字符或第一个字符的值将它们放入数组中的位置,然后在少数几个具有多个字符串的数组索引上使用传统的排序算法,从而获得非常好的性能。其中的项目。还有其他更复杂的算法可以在这种情况下提供更好的性能。
但是,作为一般的经验法则,您应该使用您提供的内容,除非您发现需要解决的可衡量的性能问题。选择内置算法使其足够好"在几乎所有情况下表现。