一、说明
- 1.选择排序(Selection Sort)是一种简单直观的排序算法。
- 2.它的工作原理是首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。
- 3.以此类推,直到所有元素均排序完毕。
二、复杂度
2.1 时间复杂度
- 1.简单选择排序是一种不稳定的排序方法,其时间复杂度为0(n2)
2.2 空间复杂度
- 1.在排序过程中仅需要一个元素的辅助空间用于数组元素值的交换,空间复杂度为O(1)。
三、java实现
3.1 示例代码
public class SelectionSort {
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
// 假设当前索引i的元素是最小的
int minIndex = i;
// 查找未排序部分的最小元素
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
// 如果找到更小的元素,更新最小元素的索引
minIndex = j;
}
}
// 如果最小元素不是当前元素,则交换它们
if (minIndex != i) {
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
}
public static void main(String[] args) {
int[] arr = {64, 25, 12, 22, 11};
// 对数组进行排序
selectionSort(arr);
// 打印排序后的数组
System.out.println("排序后的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38