逻辑帮助 - 按升序查找元素系列

时间:2016-08-30 08:54:32

标签: java arrays arraylist logic

给定一组数组,它​​具有不同的值。我必须按升序显示一系列数字

(例如)

如果输入

{45,50,55,60,45,40,50,55}

然后输出应为

{45,50,55,60,40,50,55}

我的代码

public static void main(String[] args) {

    int[] values = { 45, 50, 55, 60, 45, 40, 50, 55 };



    for (int i = 0; i < values.length-1; i++) {

        if(values[i]<values[i+1]){

            System.out.println(values[i]);

        }

    }

}

它将输出显示为 {45,50,55,40,50} 。第4个元素 60 ,最后一个元素 55 未显示我的逻辑。

任何人都可以帮助更改此逻辑以显示正确的输出吗?

输出应该是 的 {45,50,55,60,40,50,55}

3 个答案:

答案 0 :(得分:2)

根据您的输出,只需编辑您的代码,如下所示:

public static void main(String[] args) throws Exception {
    int[] values = { 45, 50, 55, 60, 45, 40, 50, 55 };
    int temp = 0; // create a temp variable
    for (int i = 0; i < values.length; i++) {
        if(values[i] > temp){// if satisfied; print
            System.out.print(values[i]+", ");
            temp = values[i];
        } else {// else prepare for next loop
            temp = 0;
        }
    }
}

输出:

45, 50, 55, 60, 40, 50, 55, 

答案 1 :(得分:1)

这应该有效

++

答案 2 :(得分:0)

您实际做的是将当前值与下一个值进行比较并打印较小的值 所以 [1,4,5,8] 实际上会有效 但是 [4,8,5,7] 不会,因为你只会比较 4 8 打印 4 然后 8 5 打印 5 7 打印 5 。结果: [4,5]

您需要做的是首先按升序对数组进行排序,然后像任何数组一样显示它 有很多方法可以对数组进行排序,请参阅Bubble sort算法,或者您可以找到自己的方法对它们进行排序。