资料内容:
在软件开发中,排序是一个非常基础且重要的操作。根据不同的应用场景,选择合适的排序算法可以极
大地提高程序的性能。下面是十种常见的排序算法及其Java实现,包括冒泡排序、选择排序、插入排
序、希尔排序、归并排序、快速排序、堆排序、计数排序、基数排序和桶排序。
1. 冒泡排序 (Bubble Sort)
原理:重复地遍历要排序的列表,比较相邻元素并交换它们的位置如果顺序错误。
适用场景:适用于小规模数据集或几乎已排序的数据集
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (arr[j] > arr[j + 1]) {
// swap arr[j+1] and arr[j]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
2. 选择排序 (Selection Sort)
原理:每次从未排序的部分找到最小(或最大)元素放到已排序序列的末尾。
适用场景:简单易懂,但效率较低,适合小规模数据
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIdx = i;
for (int j = i + 1; j < n; j++)
if (arr[j] < arr[minIdx])
minIdx = j;
int temp = arr[minIdx];
arr[minIdx] = arr[i];
arr[i] = temp;
}
}