在编程的世界里,排序算法是不可或缺的一部分。掌握这些基本算法不仅能提升代码效率,还能增强解决问题的能力。今天,我们将用Java语言来实现四种常用的排序算法,并通过一些示例代码来加深理解。🚀
1️⃣ 冒泡排序 - 这是最基础的排序算法之一,通过重复地交换相邻的两个错误顺序的元素来完成排序。尽管简单,但效率较低,适用于小数据集。💡
```java
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2️⃣ 选择排序 - 它的工作原理是从未排序序列中挑选最小(或最大)的元素,存放到排序序列的起始位置。同样简单,但在大数据量时性能较差。🔎
```java
public static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
```
3️⃣ 插入排序 - 类似于打牌时整理手牌的方式,将新来的牌插入到已排好序的序列中。适用于部分已排序的数据。🔍
```java
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
```
4️⃣ 快速排序 - 这是一种分而治之的策略,选择一个基准值,将数组分为两部分,一部分小于基准值,另一部分大于基准值,然后递归处理这两部分。这是一种非常高效的排序方法。⚡
```java
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
```
通过上述示例,我们可以看到每种排序算法都有其特点和适用场景。希望这些基础知识能够帮助你在实际项目中做出合适的选择!🛠️