• java实现最大五个数


    ** 最大5个数**

    [12,127,85,66,27,34,15,344,156,344,29,47,....]  
    
    这是某设备测量到的工程数据。
    
    因工程要求,需要找出最大的5个值。
    
    一般的想法是对它排序,输出前5个。但当数据较多时,这样做很浪费时间。因为对输出数据以外的数据进行排序并非工程要求,即便是要输出的5个数字,也并不要求按大小顺序,只要找到5个就可以。
    
    以下的代码采用了另外的思路。考虑如果手里已经抓着5个最大数,再来一个数据怎么办呢?让它和手里的数据比,如果比哪个大,就抢占它的座位,让那个被挤出来的再自己找位子,....
    
    import java.util.*;
    public class B23
    {
        public static List<Integer> max5(List<Integer> lst)
        {
            if(lst.size()<=5) return lst;
            
            int a = _______________________;  // 填空
            List<Integer> b = max5(lst);
            
            for(int i=0; i<b.size(); i++)
            {
                int t = b.get(i);
                if(a>t)
                {
                    __________________;  // 填空
                    a = t;  
                }
            }
            
            return b;
        }
        
        public static void main(String[] args)
        {
            List<Integer> lst = new Vector<Integer>();
            lst.addAll(Arrays.asList(12,127,85,66,27,34,15,344,156,344,29,47));        
            System.out.println(max5(lst));
        }
    }
    
    
        请分析代码逻辑,并推测划线处的代码。
    
        答案写在 “解答.txt” 文件中
    
        注意:只写划线处应该填的内容,划线前后的内容不要抄写。
    
    
    lst.remove(0)
    lst.set(i, a) 或者 b.set(i, a)
    
  • 相关阅读:
    解决linux sudo apt-get install xx是2出现无法定位软件包方法
    python的基础语法
    python 之装饰器
    Python-生成器
    Python中if __name__ = "__main__"的理解
    VS Code上配置python虚拟环境
    sympy简明用法
    Pandas中两个DataFrame的差集
    Time Series in pandas
    PyQt5高清屏幕自适应设置 QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947258.html
Copyright © 2020-2023  润新知