Java 中 Sort 排序是非常常用的方法,这一章我们主要来认识一下 Sort 的用法和相关的实现。
一、数组 Sort 排序
升序排序,直接使用 Arrays.Sort 方法,例如:
import java.util.Arrays;
public class Solution {
public static void main(String[] args) {
int[] array = {10, 3, 6, 1, 4, 5, 9};
//正序排序
Arrays.sort(array);//会检查数组个数大于286且连续性好就使用归并排序,若小于47使用插入排序,其余情况使用双轴快速排序
System.out.println("升序排序:");
for (int num : array) {
System.out.println(num);
}
}
}
降序排序,对于只输出数组的情况,可以倒序循环访问,例如:
import java.util.Arrays;
public class Solution {
public static void main(String[] args) {
int[] array = {10, 3, 6, 1, 4, 5, 9};
//正序排序
Arrays.sort(array);//会检查数组个数大于286且连续性好就使用归并排序,若小于47使用插入排序,其余情况使用双轴快速排序
System.out.println("升序排序:");
for (int num : array) {
System.out.println(num);
}
//倒序排序
//(1)由于不提供倒排方法,你可以倒叙输出
System.out.println("降序输出:");
for (int i = array.length - 1; i >= 0; i--) {
System.out.println(array[i]);
}
}
}
降序排序,对于需要使用数组 的情况,可以创建一个新的数组,然后倒序访问赋值,例如:
import java.util.Arrays;
public class Solution {
public static void main(String[] args) {
int[] array = {10, 3, 6, 1, 4, 5, 9};
//正序排序
Arrays.sort(array);//会检查数组个数大于286且连续性好就使用归并排序,若小于47使用插入排序,其余情况使用双轴快速排序
System.out.println("升序排序:");
for (int num : array) {
System.out.println(num);
}
//倒序排序
//(1)由于不提供倒排方法,你可以倒叙输出
System.out.println("降序输出:");
for (int i = array.length - 1; i >= 0; i--) {
System.out.println(array[i]);
}
//(2)或者创建一个新的数组,倒叙保存到新数组
int[] descArray = new int[array.length];
for (int i = 0; i < array.length; i++) {
descArray[i] = array[array.length - i - 1];
}
System.out.println("新数组降序输出:");
for (int num : descArray) {
System.out.println(num);
}
}
}