编写一个 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 + " ");
}
}
}

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] + " ");
}
}
}

用户插入的值为 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