如何以及在何处将我的冒泡排序算法放入Java中

时间:2016-06-02 17:14:36

标签: java arrays algorithm bufferedreader bubble-sort

我正在尝试创建一个程序,要求用户输入20个双精度值。然后程序将添加所有输入的总和并计算平均值。然后我需要显示小于5.00的和,平均值以及大于计算平均值的值。到目前为止,我能够做到这一点。但是,我们还被要求按降序显示所有元素。我们介绍了泡泡分类,但我无法弄清楚在当前代码中放置它的位置和方式,因为它会影响其他结果。我们只允许使用BufferedReader。

这是我到目前为止的代码:

import java.io.*;
public class Prices {
public static void main(String[]args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader (System.in));
    double [] price = new double [5];
    double sum = 0, ave = 0, temp;

    System.out.print("Enter a value that has a decimal point: " );

    for(int i=0; i<price.length;i++) 
 //loop for accepting values for the array, adding values and getting the ave of the values
    {

        price[i] = Double.parseDouble(br.readLine());//holds the values of the input

        sum += price[i];//adds all the input
        ave = sum/5;//divides the computed sum by array size
    }
    // for printing the total sum & ave
    System.out.println("The sum is = "+sum);
    System.out.println("The average is = "+ave);

    for(int i=0; i<price.length;i++){//loop for displaying values<5.00 and values>computed ave.    
    if (price[i]<5.00)
    {   
        System.out.println("Values less than 5.00: "+ price[i]);
    }
    if (price[i]>ave)
    {
        System.out.println("Values greater than average: "+ price[i]);
    }
    }  
}
}

2 个答案:

答案 0 :(得分:1)

你可能希望在关闭最后一个if语句后的'main'方法中将BubbleSort algorythm放在最后,这样无论它对数组做什么改变都不会干扰程序的其余部分。

或者你可以创建一个数组的副本来处理,这样无论你将algorythm放在方法的哪个地方,主数组都不会受到影响,但我不建议在这种情况下这样做。

答案 1 :(得分:0)

我在这里看不到任何发生的事情。所有发生的事情都是通过数组循环并打印到std out。

在Price类中创建一个新方法调用bubbleSort,并将读取的数组传入此方法。这里有一个简单的实现https://en.wikipedia.org/wiki/Bubble_sort#Implementation冒泡排序是一种就地排序,因此原始数组将被修改。