排序-选择排序

思想

每一次遍历待排序的序列,记录最小(大)值的下标,和待排序第一个元素进行比较,如果小(大)与待排序第一个元素,交换

动图实现:(参考资料)
选择排序

实现(java)

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
/**
* @Author: fanjiajia
* @Date: 2019/3/1 下午9:05
* @Version: 1.0
* @Description:选择排序
*/
public class Main {

public static void main(String[] args) {

int[] arr = {2,5,4,3,8,6,4};
selectSort(arr);
for (int i = 0; i< arr.length; i++){
System.out.print(arr[i] + ",");
}
}

/**
* 选择排序
* @param arr
*/
private static void selectSort(int[] arr) {
for (int i = 0,k =0; i < arr.length; i++, k = i){
// 这一层查找后面最小值的下标
for (int j = i+1; j <arr.length; j++) {
if (arr[k] > arr[j]) { // 这个改为小与符合即为从大到小
k = j;
}
}
// 交换值
if( i != k) {
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
}

分析

~~客官随意,我只是学习怎么配置打赏而已~~