需要使用scanner类在Java中使用带有用户输入的排序方法

需要使用scanner类在Java中使用带有用户输入的排序方法,java,arrays,sorting,Java,Arrays,Sorting,我有一个输出最高值、最低值、平均值的方法,我需要一个排序方法。我曾经尝试过所谓的“泡泡法”,但没有成功。有人知道我可以使用的其他排序方法吗 import java.util.Scanner; public class Arrayassignment { public static void main(String[] args) { Scanner sin = new Scanner(System.in); System.out.println("E

我有一个输出最高值、最低值、平均值的方法,我需要一个排序方法。我曾经尝试过所谓的“泡泡法”,但没有成功。有人知道我可以使用的其他排序方法吗

import java.util.Scanner;

public class Arrayassignment {

    public static void main(String[] args) {
        Scanner sin = new Scanner(System.in);

        System.out.println("Enter an intiger for array size.");

        int number = sin.nextInt();

        int array[] = new int[number];

        System.out.println("Array size " + number + " initiated.\n");

        System.out.println("Now enter the array intigers.");
        for (int i = 0; i < number; i++) {
            array[i] = sin.nextInt();

        }

        //System.out.println ( "\nLargest " + max (1, 3, 5) ); 
        System.out.println("sorting" + sort(array));
        System.out.println("The highest number in the array is " + max(array));
        System.out.println("The smallest number in the array is " + min(array));
        System.out.println("The average of the numbers in the array is " + avg(array));
    }

    public static int sort(int[] arg) {

        for (int i = 1; i < arg.length - 1; i++) {
            for (int j = i + 1; j < arg.length; j++) {

                if (arg[i] > arg[j]) {
                    int arrange = arg[i];

                    arg[i] = arg[j];
                    arg[j] = arrange;

                }
            }
        }
        return arrange;
    }

    public static int max(int[] arg) {
        if (arg.length == 0) {
            System.out.println(" empty arguement list ");
            return 0;
        }
        int largest = arg[0];
        for (int i = 1; i < arg.length; i++) {
            if (arg[i] > largest) {
                largest = arg[i];
            }
        }
        return largest;
    }

    public static int min(int[] arg) {
        if (arg.length == 0) {
            System.out.println(" empty arguement list ");
            return 0;
        }
        int smallest = arg[0];
        for (int i = 1; i < arg.length; i++) {
            if (arg[i] < smallest) {
                smallest = arg[i];
            }
        }
        return smallest;
    }

    public static double avg(int... arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        double average = (double) sum / arr.length;
        return average;
    }
}
import java.util.Scanner;
公开课安排{
公共静态void main(字符串[]args){
扫描仪sin=新的扫描仪(System.in);
System.out.println(“输入数组大小的整数”);
int number=sin.nextInt();
int数组[]=新的int[number];
System.out.println(“数组大小”+number+”已启动。\n”);
System.out.println(“现在输入数组intigers.”);
for(int i=0;iarg[j]){
int arrange=arg[i];
arg[i]=arg[j];
arg[j]=排列;
}
}
}
退货安排;
}
公共静态int max(int[]arg){
如果(arg.length==0){
System.out.println(“空参数列表”);
返回0;
}
int最大=arg[0];
对于(int i=1;i最大值){
最大值=arg[i];
}
}
回报最大;
}
公共静态int min(int[]arg){
如果(arg.length==0){
System.out.println(“空参数列表”);
返回0;
}
int=arg[0];
对于(int i=1;i
您还可以使用许多其他排序方法。您尝试使用的一种称为“气泡排序”,在大型数据集上非常昂贵,除非它们是有序的。我建议您使用选择排序或插入排序来完成您要完成的任务

以下是指向您可以实现的许多排序算法的链接:

以下是一些显示这些排序过程的动画(强烈建议您在实现算法之前查看这些动画):

您可以根据自己的需要使用任何方便的排序方法。对数组进行排序后,您可以轻松地从排序后的数组、数组的第一个元素和最后一个元素中提取最小值和最大值

要计算平均值,您必须使用单独的方法,或者您可以使用静态变量来计算排序方法中的总数

请参阅此代码

    public class Arrayassignment {
    public static void main(String[] args) {
        Scanner sin = new Scanner(System.in);
        System.out.println("Enter an intiger for array size.");

        int number = sin.nextInt();

        int array[] = new int[number];

        System.out.println("Array size " + number + " initiated.\n");

        System.out.println("Now enter the array intigers.");
        for (int i = 0; i < number; i++) {
            array[i] = sin.nextInt();
        }

        sin.close();

        System.out.println("sorting");
        printArray(array); //Before sort
        sort(array);
        printArray(array); //After sort
        System.out.println("The highest number in the array is " + array[array.length - 1]);
        System.out.println("The smallest number in the array is " + array[0]);
        System.out.println("The average of the numbers in the array is " + avg(array));
    }

    public static void sort(int[] arg) {
        int arrange;
        for (int i = 0; i < arg.length - 1; i++)
            for (int j = i + 1; j < arg.length; j++) {

                if (arg[i] > arg[j]) {
                    arrange = arg[i];
                    arg[i] = arg[j];
                    arg[j] = arrange;
                }
            }
    }

    public static double avg(int... arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        double average = (double) sum / arr.length;
        return average;
    }

   public static void printArray(int[] arr) {
      for (int value : arr) {
         // print elements according to your convenient
         System.out.println(value);
    }
}
公共类排列指定{
公共静态void main(字符串[]args){
扫描仪sin=新的扫描仪(System.in);
System.out.println(“输入数组大小的整数”);
int number=sin.nextInt();
int数组[]=新的int[number];
System.out.println(“数组大小”+number+”已启动。\n”);
System.out.println(“现在输入数组intigers.”);
for(int i=0;iarg[j]){
arrange=arg[i];
arg[i]=arg[j];
arg[j]=排列;
}
}
}
公共静态双平均值(int…arr){
整数和=0;
对于(int i=0;i

要打印数组,您必须遍历数组。请参阅上面的代码方法。

缩进代码并正确设置代码格式。我仍然无法解决如何显示排序后的数组的主要问题。-打印数组-排序数组-再次打印数组我已经添加了一个方法,您必须在要打印数组的位置调用它。