一、使用Arrays类排序
Java的Arrays类提供了一个静态方法sort(),可以用来对数组进行排序。这个方法使用了双轴快速排序算法。
demo:
import java.util.Arrays;
public class ArraySortWithArraysClass {
public static void main(String[] args) {
int[] numbers = {5, 3, 1, 4, 2};
// 使用Arrays类的sort方法进行排序
Arrays.sort(numbers);
// 打印排序后的数组
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 4, 5]
}
}
二、自定义排序逻辑
如果需要按照特定的顺序对数组进行排序,可以使用Arrays.sort()方法的另一个版本,它接受一个比较器。
demo:
import java.util.Arrays;
import java.util.Comparator;
public class CustomSortWithArraysClass {
public static void main(String[] args) {
String[] words = {"banana", "apple", "orange"};
// 使用自定义比较器进行排序
Arrays.sort(words, Comparator.comparingInt(String::length));
// 打印排序后的数组
System.out.println(Arrays.toString(words)); // 输出:[apple, orange, banana]
}
}
三、冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历数组,比较相邻元素,并在必要时交换它们的位置。
demo:
public class BubbleSort {
public static void main(String[] args) {
int[] numbers = {5, 3, 1, 4, 2};
// 冒泡排序
for (int i = 0; i < numbers.length - 1; i++) {
for (int j = 0; j < numbers.length - 1 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
// 交换元素
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
// 打印排序后的数组
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 4, 5]
}
}
四、选择排序
选择排序是一种简单直观的排序算法,它的工作原理是不断地选择剩余元素中的最小(或最大)元素,放到已排序的序列的末尾。
demo:
public class SelectionSort {
public static void main(String[] args) {
int[] numbers = {5, 3, 1, 4, 2};
// 选择排序
for (int i = 0; i < numbers.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < numbers.length; j++) {
if (numbers[j] < numbers[minIndex]) {
minIndex = j;
}
}
// 交换元素
int temp = numbers[i];
numbers[i] = numbers[minIndex];
numbers[minIndex] = temp;
}
// 打印排序后的数组
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 4, 5]
}
}
五、插入排序
插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
demo:
public class InsertionSort {
public static void main(String[] args) {
int[] numbers = {5, 3, 1, 4, 2};
// 插入排序
for (int i = 1; i < numbers.length; i++) {
int current = numbers[i];
int j = i - 1;
while (j >= 0 && numbers[j] > current) {
numbers[j + 1] = numbers[j];
j--;
}
numbers[j + 1] = current;
}
// 打印排序后的数组
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 4, 5]
}
}
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~