• 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)
    
  • 相关阅读:
    将WinServers2019打造成家用系统
    WindowsServers2019上手体验
    【代码模板】不存在的NOIP2017
    NOIP2018初赛翻车总结
    【初赛】各种排序算法总结
    【Luogu1996】约瑟夫问题(模拟,解法汇总)
    【初赛】NOIP2018程序模板
    MongoDB
    非关系型数据库----MongoDB
    用Python来操作redis 以及在Django中使用redis
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076488.html
Copyright © 2020-2023  润新知