如果我们需要实现一个函数,接受一个整数数组并返回集合中的最大整数,假设数组的长度小于1000。您会使用冒泡排序还是合并排序,为什么?

另外,如果数组长度大于 1000,上述算法选择会发生什么情况?我有点困惑为什么我应该使用一种特定的算法而不是另一种算法。仅仅是因为它的复杂性和时间还是还涉及其他因素?如果我必须测试上述函数,并且对于简单算法需要更多时间,而对于复杂算法需要更少时间,该怎么办?

有帮助吗?

解决方案

我根本不会分类。我只是穿越阵列,并跟踪最大的阵列。这需要O(n)时间,而类型算法通常不会比O(n*log(n))更好。

其他提示

好吧,如果必须排序,请使用合并排序,因为它比气泡排序快很多。对于1000个元素和一种元素,您可能不会注意到现代计算机上的差异,但是对于更多的元素(我认为> 10 000),差异变得令人叹为观止。

我们将数组的长度称为 N。

使用冒泡排序对数组进行排序大约需要 N*N 个时间单位。

使用归并排序对其进行排序需要 N * log N 单位时间。

简单地逐个查看每个元素并跟踪哪个元素最大将花费大约 N 个时间单位。

因此,使用最后一种方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top