2010-04-22 144 views
-1

如果我们需要实现一个函数,该函数接受一个整数数组并返回集合中的最大整数,假定数组的长度小于1000.您会使用Bubble排序或合并排序和为什么?算法在整数数组中的最大整数

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

+3

这听起来有点像功课。如果情况如此,您能否举报? – Joey 2010-04-22 11:46:01

+2

如果数组长度大于1000,那么气泡就会熄灭。 – 2010-04-22 11:58:12

+1

因为它闻起来像做家庭作业,所以这并不值得赞赏。 – defines 2010-07-08 12:35:52

回答

18

我根本不会排序。我只是遍历数组并跟踪最大的一个。这需要O(N)时间,而排序算法通常不会比O(N * log(N))做得更好。

+1

+1:OP的排序意图对此很奇怪。我想知道是否有另一个基本要求。 – 2010-04-22 11:45:19

+1

如果你选择了一个坏算法 – Gishu 2010-04-22 11:47:06

0

允许打电话给你的阵列N.

排序使用冒泡排序的阵列的长度中的时间N * N个单元的顺序大致花费。

使用合并排序对它进行排序需要N * log N个时间单位的顺序。

简单地看一个一个一个的元素,并跟踪哪一个是最大的将采取N个单位时间的顺序。

因此,使用最后的方法。

2

那么如果你必须排序,然后使用合并排序,因为它比气泡排序快得多。对于1000个元素和一种排序,您可能不会注意到现代计算机上的差异,但对于更多元素(我认为> = 10000),差异变得不可分割。