问题:从整数集合中获取最大数的最有效方法
我最近在讨论这个问题,我有两种解决方案: 1)遍历整个集合并找到最大数(下面是代码) 2)使用排序算法。
第一个方法的效率为O(n)。
我想问一下:“在任何给定的输入上,是否有任何排序算法能够在时间尺度上超越它(如如果集合已经排序或未排序)?”还有比这更好的方法吗?
我最近在讨论这个问题,我有两种解决方案: 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;
}
我想问一下:“在任何给定的输入上,是否有任何排序算法能够在时间尺度上超越它(如如果集合已经排序或未排序)?”还有比这更好的方法吗?