描述
输入整型数组和排序标识,对其元素按照升序或降序进行排序
数据范围: ,元素大小满足
输入描述:
第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序
输出描述:
输出排好序的数字
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 第一行输入数组元素个数
// 第二行输入待排序的数组,每个数用空格隔开
// 第三行输入一个整数0或1。0代表升序排序,1代表降序排序
Scanner sc = new Scanner(System.in);
//1、遍历元素,取值。
while (sc.hasNext()) {
//2、第一个数为数组元素个数n
int n = sc.nextInt();
//3、将待排序的元素取出
int[] array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = sc.nextInt();
}
//4、取出输入的最后一个整数,代表排序的方式
int s = sc.nextInt();
Main sorter = new Main();
if (s == 0) {
// 升序排序
sorter.sort(array);
} else if (s == 1) {
// 降序排序
sorter.sortDesc(array);
}else {
System.out.println("请输入正确的排序方式:");
}
}
}
public void sort(int[] array) {
// 升序
for (int i = 1; i < array.length; i++) {
for (int j = 0; j < array.length - i; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
showArray(array);
}
public void sortDesc(int[] array) {
// 降序
for (int i = 1; i < array.length; i++) {
for (int j = 0; j < array.length - i; j++) {
if (array[j] < array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
showArray(array);
}
public void showArray(int[] array) {
for (int i : array) {
System.out.print(i + " ");
}
}
}
输入:
8 1 2 4 9 3 55 64 25 0输出:
1 2 3 4 9 25 55 64
输入:
5 1 2 3 4 5 1输出:
5 4 3 2 1