如果我们需要实现一个函数,该函数接受一个整数数组并返回集合中的最大整数,假定数组的长度小于1000.您会使用Bubble排序或合并排序和为什么?算法在整数数组中的最大整数
另外,如果数组长度大于1000,上述算法选择会发生什么?我有点困惑,为什么我应该使用特定的算法而不是另一种算法。这是因为它的复杂性和时间或其他因素吗?如果我必须测试上述功能,并且需要更多的时间用于简单的算法,并且需要更少的时间用于复杂的算法,该怎么办?
如果我们需要实现一个函数,该函数接受一个整数数组并返回集合中的最大整数,假定数组的长度小于1000.您会使用Bubble排序或合并排序和为什么?算法在整数数组中的最大整数
另外,如果数组长度大于1000,上述算法选择会发生什么?我有点困惑,为什么我应该使用特定的算法而不是另一种算法。这是因为它的复杂性和时间或其他因素吗?如果我必须测试上述功能,并且需要更多的时间用于简单的算法,并且需要更少的时间用于复杂的算法,该怎么办?
我根本不会排序。我只是遍历数组并跟踪最大的一个。这需要O(N)时间,而排序算法通常不会比O(N * log(N))做得更好。
+1:OP的排序意图对此很奇怪。我想知道是否有另一个基本要求。 – 2010-04-22 11:45:19
如果你选择了一个坏算法 – Gishu 2010-04-22 11:47:06
允许打电话给你的阵列N.
排序使用冒泡排序的阵列的长度中的时间N * N个单元的顺序大致花费。
使用合并排序对它进行排序需要N * log N个时间单位的顺序。
简单地看一个一个一个的元素,并跟踪哪一个是最大的将采取N个单位时间的顺序。
因此,使用最后的方法。
那么如果你必须排序,然后使用合并排序,因为它比气泡排序快得多。对于1000个元素和一种排序,您可能不会注意到现代计算机上的差异,但对于更多元素(我认为> = 10000),差异变得不可分割。
+1,那么排序可能会比O(N * logN)更糟糕,但不直接与问题直接相关:P但是好的站点。 – codaddict 2010-04-22 12:12:05
这听起来有点像功课。如果情况如此,您能否举报? – Joey 2010-04-22 11:46:01
如果数组长度大于1000,那么气泡就会熄灭。 – 2010-04-22 11:58:12
因为它闻起来像做家庭作业,所以这并不值得赞赏。 – defines 2010-07-08 12:35:52