問題得到最高的號碼:最有效的方式來獲得整數最有效的方法,從整數集合
我最近在討論這個問題的集合人數最多,我心中有2個解決方案。 1)遍歷集合並找到最高編號(代碼如下) 2)使用排序算法。
第一種方法將有O(n)的效率
int getHighestNumber(ArrayList<Integer> list)
{
if(list != null && list.size() > 0)
{
if(list.size() == 1)
return list.get(0);
int maxNum = list.get(0);
for(int item:list)
{
if(item > maxNum)
maxNum = item;
}
return maxNum;
}
return null;
}
我的問題是「可以在任何排序算法對如任何給定的輸入擊敗它(時間刻度)。如果集合已經排序或不?」 有沒有其他方法比這更好?
除非你知道關於數據的一些信息,否則每個元素可能是最高的 –