java代码排序算法
时间: 2024-11-22 09:27:39 浏览: 15
在Java中,有许多种常用的排序算法,这里列举几种常见的:
1. **冒泡排序** (Bubble Sort): 最基础的排序算法之一,通过不断交换相邻未按序的元素来进行升序或降序排列。
```java
void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) { // 升序比较
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2. **插入排序** (Insertion Sort): 将数组分为已排序和未排序两部分,然后从未排序部分逐个元素插入到已排序部分的适当位置。
```java
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;
}
}
```
3. **选择排序** (Selection Sort): 每次从未排序的部分选取最小(或最大)的元素放到已排序部分的末尾。
```java
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;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
```
4. **快速排序** (Quick Sort): 分治策略,选取一个基准值,将数组分成两个部分,一部分的所有元素都比基准小,另一部分则反之,然后递归地对这两部分进行排序。
5. **归并排序** (Merge Sort): 也是分治法,先将数组一分为二,再分别排序,最后合并成有序序列。
6. **堆排序** (Heap Sort): 利用堆这种数据结构的特性进行排序,分为建堆、调整堆和下移堆顶三个步骤。
阅读全文