這是我在互聯網上最近發現一個面試問題:關於冒泡排序VS合併排序
如果你要實現一個函數,它接受一個整數數組作爲輸入並返回最大,你會用冒泡排序或合併排序來實現此功能?如果數組大小小於1000,該怎麼辦?如果它大於1000呢?
這是我如何看待它:
首先,這是很奇怪的使用排序來實現上述功能。你可以通過一次數組來找到最大值。其次,如果必須在兩者之間作出選擇,那麼冒泡排序更好 - 您不必執行整個冒泡排序過程,而只需要執行第一遍。這比在時間和空間上合併排序要好。
我的答案中是否有錯誤?我錯過了什麼嗎?
我認爲你是正確的拒絕前提:線性通道(&固定空間)是你需要找到最大值。如果面試官強迫你選擇,我會建議合併排序,因爲它具有更好的'O(n log n)'時間複雜度。 – phs 2013-03-08 03:44:45
這可能是一個問題,旨在根除新手......? – 2013-03-08 04:33:22