Java 数组降序排序程序

编写一个 Java 程序,在不使用内置函数(临时变量)的情况下对数组进行降序排序,并提供一个使用 Sort 方法的示例。

Java 数组降序排序程序

在此程序中,我们使用 Collections.reverseOrder() 和 Array.sort 方法对数组元素进行降序排序。

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
import java.util.Comparator;

public class Example1 {
	private static Scanner sc;
	public static void main(String[] args) 
	{
		int Size, i;
		sc = new Scanner(System.in);
	 
		System.out.print(" Please Enter Number of elements : ");
		Size = sc.nextInt();	
		
		Object [] a = new Object[Size];
		
		System.out.print(" Please Enter " + Size + " elements  : ");
		for (i = 0; i < Size; i++)
		{
			a[i] = sc.nextInt();
		}
		
		Comparator<Object> cms = Collections.reverseOrder();
		Arrays.sort(a, cms);
		
		System.out.println("\n Result :  ");
		for (Object Number: a)
		{
			System.out.print(Number + "  ");
		}
	}
}
Sort Array in Descending Order

请参阅 sort 文章。

使用临时变量对数组进行降序排序的 Java 程序

Java 程序 允许用户输入大小和 数组 元素。接下来,它将使用 For Loop 将数组元素按降序排序。

import java.util.Scanner;

public class SortDescending2 {
	private static Scanner sc;
	public static void main(String[] args) 
	{
		int Size, i, j, Temp;
		sc = new Scanner(System.in);
	 
		System.out.print(" Please Enter Number of elements in an array : ");
		Size = sc.nextInt();	
		
		int [] a = new int[Size];
		
		System.out.print(" Please Enter " + Size + " elements of an Array  : ");
		for (i = 0; i < Size; i++)
		{
			a[i] = sc.nextInt();
		}
		
		for (i = 0; i < Size; i++)
		{
			for (j = i + 1; j < Size; j++)
			{
				if(a[i] < a[j])
				{
					Temp = a[i];
					a[i] = a[j];
					a[j] = Temp;
				}		
			}
		}
		
		System.out.print("\n Result of a Descending Array :  ");
		for (i = 0; i < Size; i++)
		{
			System.out.print(a[i] + " ");
		}
	}
}
Java Program to Sort Array in Descending Order 2

用户在此 Java 程序中插入的值为 a[5] = {24, 19, 65, 5, 99}

第一个 For Loop – 第一次迭代:for (i = 0; 0 < 5; 0++)
i 的值为 0,条件 (i < 5) 为 True。因此,它将进入内部或嵌套的 For Loop。

第二个 For Loop – 第一次迭代:for (j = 0 + 1; 1 < 5; 1++)。条件 (1 < 5) 为 True。因此,它将进入 If Statement

if(a[i] < a[j]) => if(24 < 19) – 条件为 False

第二个 For Loop – 第二次迭代:for (j = 2; 2 < 5; 2++)。这里,条件 (i < 5) 为 True。

if(a[i] < a[j]) => if(24 < 65) – 条件为 True

Temp = a[0] = 24

a[0] = a[2] = 65

a[j] = Temp => a[2] = 24

对剩余的迭代执行相同的操作,直到条件 (i < 5) 失败。

下一个 for 循环用于打印元素。我建议您参考 Java 打印数组元素程序 文章来理解这一点。

使用函数对数组进行降序排序的 Java 程序

程序 与上述程序相同。但是,这次我们使用 Method 将对数组元素进行降序排序的逻辑分开。并且我们使用了另一个函数来打印其中的项。

import java.util.Scanner;

public class Example3 {
	private static Scanner sc;
	public static void main(String[] args) 
	{
		int Size, i;
		sc = new Scanner(System.in);
	 
		System.out.print(" Please Enter Number of elements : ");
		Size = sc.nextInt();	
		
		int [] a = new int[Size];
		
		System.out.print(" Please Enter " + Size + " elements  : ");
		for (i = 0; i < Size; i++)
		{
			a[i] = sc.nextInt();
		}
		
		OrderDesc(a, Size);
		System.out.print("\n Result :  ");
		printAttay(a, Size);
	}
	public static void OrderDesc(int[] a, int Size)
	{
		int i, j, Temp;
		
		for (i = 0; i < Size; i++)
		{
			for (j = i + 1; j < Size; j++)
			{
				if(a[i] < a[j])
				{
					Temp = a[i];
					a[i] = a[j];
					a[j] = Temp;
				}			
			}
		}	
	}
	public static void printAttay(int[] A, int Size)
	{
		int i;
		
		for (i = 0; i < Size; i++)
		{
			System.out.print(A[i] + " ");
		}
	}
}
 Please Enter Number of elements : 8
 Please Enter 8 elements  : 25 95 86 15 88 77 5 126

 Result :  126 95 88 86 77 25 15 5