Java 程序:按升序排序数组
原文:https://www.studytonight.com/java-programs/java-program-to-sort-an-array-in-ascending-order
在本教程中,我们将学习如何按升序对数组元素进行排序。排序是指按字母顺序或数字顺序排列数据。但是在继续之前,如果您不熟悉数组的概念,那么请务必查看 Java 中的文章数组。
输入:输入数组元素:5 4 6 7 8 2 3 1 9
输出:按升序排列的数组:1 2 3 4 5 6 7 8 9
方法 1:使用循环
方法 2:使用数组。排序()
让我们分别看看这些方法。
程序 1:按升序排序数组的元素
在这种方法中,我们将看到如何使用循环以升序对数组进行排序。我们可以使用手动排序对数组进行排序,就像使用 for 循环一样。我们可以做的是使用两个 for 循环,一个从开始遍历数组,另一个 for 循环在外部遍历下一个元素。在正文中,我们可以比较相邻的元素,如果它们没有按顺序排列,就可以交换。我们也可以使用一个临时变量来交换元素。
算法
- 开始
- 声明数组
- 要求用户初始化数组
- 声明一个临时变量来存储交换时的元素。
- 对同一个循环使用两个。
- 使用第一个 for 循环来保存元素并遍历所有元素。
- 使用第二个 for 循环与其余元素进行比较。
- 通过比较和交换对元素进行排序。
- 显示更新的数组。
- 停止
下面是相同的代码。
下面的程序演示了如何使用循环对数组进行升序排序。
/*Java Program to Sort an Array in Ascending Order*/
import java.util.Arrays;
import java.util.Scanner;
import java.util.Collections;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n; //Array Size Declaration
System.out.println("Enter the number of elements :");
n=sc.nextInt(); //Array Size Initialization
Integer arr[]=new Integer[n]; //Array Declaration
System.out.println("Enter the elements of the array :");
for(int i=0;i<n;i++) //Array Initialization
{
arr[i]=sc.nextInt();
}
int temp = 0; //Temporary variable to store the element
for (int i = 0; i < arr.length; i++) //Holds each Array element
{
for (int j = i+1; j < arr.length; j++) //compares with remaining Array elements
{
if(arr[i] > arr[j]) //Compare and swap
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.println();
//Displaying elements of array after sorting
System.out.println("Elements of array sorted in ascending order: ");
for (int i = 0; i < arr.length; i++)
{
System.out.print(arr[i] + " ");
}
}
}
输入元素个数:10 输入数组元素: 6 7 8 4 3 5 1 8 9 7 数组元素按升序排序: 1 3 4 5 6 7 8 8 9
程序 2:按升序排序数组的元素
在这种方法中,我们将看到如何使用 Arrays.sort()以升序对数组进行排序。“java.util”包的 Arrays 类提供了排序方法,该方法以数组作为参数,并对数组进行排序。这是一种直接排序方法,只需调用一次方法,就可以按升序对数组进行排序。
算法:
- 开始
- 声明数组
- 要求用户初始化数组
- 使用 Arrays.sort()以升序对元素进行排序。
- 打印更新后的数组。
- 停止
下面是相同的代码。
下面的程序演示了如何使用 Arrays.sort()按升序对数组进行排序。
/*Java Program to Sort an Array in Ascending Order*/
import java.util.Arrays;
import java.util.Scanner;
public class AscendingOrder
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n; //Array Size Declaration
System.out.println("Enter the number of elements :");
n=sc.nextInt(); //Array Size Initialization
int arr[]=new int[n]; //Array Declaration
System.out.println("Enter the elements of the array :");
for(int i=0;i<n;i++) //Array Initialization
{
arr[i]=sc.nextInt();
}
Arrays.sort(arr); //Sorts the Array in Ascending Order
System.out.printf("Sorted arr[] : %s",
Arrays.toString(arr)); //Prints the sorted Array
}
}
输入元素个数:10 输入数组元素:1 4 2 5 6 8 2 3 9 8 排序 arr[] : [1,2,2,3,4,5,6,8,8,9]