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