Java 排序数组升序程序

编写一个 Java 程序,在不使用内置函数和 Sort() 方法的情况下,按升序对数组进行排序,并附带示例。

Java 排序数组升序程序

在此程序中,我们使用 Array sort 方法按升序对元素进行排序。

import java.util.Arrays;
import java.util.Scanner;

public class OrderAsc1 {
	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 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();
		}
		
		Arrays.sort(a);
		
		System.out.println("\n Result :  ");
		for (int Number: a)
		{
			System.out.print(Number + "  ");
		}
	}
}
Sort Array in Ascending Order

Java 按升序排序数组程序(使用临时变量)

Java 程序允许用户输入大小和一维 Array 元素。接下来,它将使用 For Loop 按升序对数组元素进行排序。

import java.util.Scanner;

public class SortAscending2 {
	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 Array after Ascending Order :  ");
		for (i = 0; i < Size; i++)
		{
			System.out.print(a[i] + " ");
		}
	}
}
Java Program to Sort Array in Ascending Order 2

用户插入的值为 a[5] = {56, 5, 2, 19, 75}

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

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

if(a[i] > a[j]) => if(56 > 5) – 在此升序排序数组示例中,条件为 True。

Temp = a[i] = a[0]
Temp = 56

a[i] = a[j]。这意味着 a[0] = a[1] = 5

a[j] = Temp
a[1] = 56

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

if(a[i] > a[j]) => if(5 > 2) – 条件为 True

Temp = a[0] = 5

a[0] = a[2] = 2

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

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

下一个 for 循环用于打印排序后的元素。我建议您参考 Java Program to Print Array Elements 文章来理解。

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

程序与上述程序相同。但这次,我们使用 Method 将对数组元素进行升序排序的逻辑分开了。

import java.util.Scanner;

public class OrderAsc3 {
	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();
		}
		
		AscOrdering(a, Size);
		System.out.print("\n Result :  ");
		printAttay(a, Size);
	}
	public static void AscOrdering(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 S)
	{
		int i;
		
		for (i = 0; i < S; i++)
		{
			System.out.print(A[i] + " ");
		}
	}
}
Please Enter Number of elements : 10
 Please Enter 10 elements  : 89 56 42 25 365 14 198 241 12 5

 Result :  5 12 14 25 42 56 89 198 241 365