码迷,mamicode.com
首页 > 其他好文 > 详细

编程思维的能力思考

时间:2018-02-26 19:37:23      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:参数   tin   个人   color   --   提升   思维   排序   情况   

  今天在学习Java时,做了一个小测验:实现输出考试成绩的前三名,功能很简单,但是其中关于一些思维的锻炼还是很有趣的,自己写的代码和别人的代码一样,但是其效率很不一样。

  题目要求:实现输出考试成绩的前三名

  1、 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73

  2、 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入

  3、 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩

  确实是很简单的题目,但是我写的方法在小数据量的时候看不出有多大的问题,但是当数据量提升上来的时候就可以发现一些问题了。废话不多说上代码。

 

    //定义方法完成成绩排序并输出前三名的功能

    public void returnArr(int[]  scores){
        for(int i=0;i<scores.length;i++){
            if((scores[i]<0) || (scores[i]>100)){
                scores[i]=0;
            }
        }
        Arrays.sort(scores);
        for(int j=(scores.length-1);j>(scores.length-4);j--){
            System.out.println(scores[j]);
        }
    }

 

  我的想法很简单,整个功能分为三步操作,首先清洗数据,然后排序,最后再输出想要的数据,看着没什么问题,然而在看下其他人写的代码。

    //定义方法完成成绩排序并输出前三名的功能
    
    public void big3(int [] scores)
    {
        Arrays.sort(scores);
        int num = 0;
        for(int i = scores.length-1;i>=0&&num<3;i--)
        {
            if(scores[i]<0||scores[i]>100)
                continue;
            num++;
            System.out.println(scores[i]);
        }
    }

  这是另一个人写的代码,这个代码将功能分为两步来操作,首先排序,然后在清洗数据的同时输出想要的数据。

  这个就比我的好很多,在数据量大的情况下,除去排序消耗资源差不多,我的需要遍历一次数组,而这个程序则完全不用,节省了很大的资源,看来自己的逻辑思维能力的确还需锻炼啊!文笔一般,也就写这样了,希望越来越好吧!

 

编程思维的能力思考

标签:参数   tin   个人   color   --   提升   思维   排序   情况   

原文地址:https://www.cnblogs.com/blueandpurpledemon/p/8474419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!