使用标准库中的内置函数还是编写自己的函数更快?

问题描述 投票:-3回答:1

我正在用Kotlin写一个buckect排序算法,我有两个问题:

  1. 使用标准librarie中的内置函数或编写自己的函数更快吗?例如,当找到数组的最大值时,我应该使用fun IntArray.max(): Int?还是编写一个执行相同操作的局部函数?
  2. 有人有其他一般技巧可提高此类算法的性能吗?
algorithm sorting kotlin bucket bucket-sort
1个回答
0
投票

通常,这些内置函数不仅仅是我们可以编写的一个简单函数。并且它们在某些情况下更为复杂,它们根据输入使用不同的算法。但是,当您了解有关输入的一些信息,并且对各种算法都非常了解时,最好编写自己的算法。例如,我们知道快速排序的最坏情况是对数组进行排序时,在这种情况下需要花费n ^ 2的时间对数组进行排序。现在,如果我们知道我们输入的输入是以某种方式进行排序的,那么我们就会知道快速排序不是一个好主意,因此我们编写自己的排序代码并避免进行快速排序。我们有分而治之的算法来找到最大值。通常内置函数会使用它们(可能会因语言而异)在您的示例中,如果您知道有关数组的信息可以帮助您更快地编写代码,那么编写自己的代码会更好。但是,如果多数民众赞成在随机或您没有任何信息,只是坚持内置功能顺便说一句,确保它更快的一个好方法是在同一个数组上尝试两种方法(只是找到最大值),并表示对不同数组进行一些重复尝试的运行时间并比较均值

© www.soinside.com 2019 - 2024. All rights reserved.