需要使用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
要打印数组,您必须遍历数组。请参阅上面的代码方法。缩进代码并正确设置代码格式。我仍然无法解决如何显示排序后的数组的主要问题。-打印数组-排序数组-再次打印数组我已经添加了一个方法,您必须在要打印数组的位置调用它。