选择排序 O(n²)
选择排序(Selection sort)是一种简单直观的排序算法。
它的工作原理是:第一次从待排序的数据元素数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
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
|
import java.util.Arrays;
/**
* @author: YunTaoChen
* @description:
* @Date: Create in
* @Modified by:
*/
public class SelectSort {
public static void main(String[] args) {
int[] arr = new int[]{2, 3, 5, 7, 1, 0, 10, 3, 1, 9};
selectsort(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectsort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
//假设第一个元素为最小元素,记录它的位置
int min = i;
//从头遍历整个数组
for (int j = i + 1; j < arr.length; j++) {
//如果某元素比记录的元素小,就把下标指向比记录元素小的元素位置
if (arr[min] > arr[j]) {
min = j;
}
}
//如果第一个min的指向变化了,就说明记录的元素已经不是最小的元素,所以要做交换
if (min != i) {
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
}
|