如果我們需要實現一個函數,該函數接受一個整數數組並返回集合中的最大整數,假定數組的長度小於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