一,选择排序
1,简介:
选择排序: 在需要排序的数组中,按照指定的规则选择出某一元素,在依据规定交换位置达到排序的目的;
选择规则:
- 根据排序确定从大到小或者从小到大,如从小到大;
- 第一次从arr[0]~arr[n-1]中找到最小值,然后跟arr[0]交换;
- 第二次从arr[1]~arr[n-1]中再找出最小值,然后跟arr[1]交换;
- 依次类推,指导最后达到排序效果;
- 每次都是假设当前循环的首位为最小值;
- 后面有更小的就定义一个变量标记最小值;
- 遍历完就标记了本轮最小值,然后按照2,3赋值;
2,代码实现:
package com.sort;
import java.util.Arrays;
/**
* @param
* @Author: AaNeei
* @Date: 2019/6/16 16:36
* @Description: 游学网
* @throws:
*/
public class SelectSort {
public static void main(String[] args) {
int[] arr = {11, 13, -5, 34, 20};
sort(arr);
}
public static void sort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int temp = arr[i];
int index = i;
//找到最小值
for (int j = i + 1; j < arr.length; j++) {
if (temp > arr[j]) {
temp = arr[j];
index = j;
}
}
if (index == i) {
continue;
} else {
arr[index] = arr[i];
arr[i] = temp;
}
}
System.out.println(Arrays.toString(arr));
}
}
注: :代码所示,比以往选择排序做了一个小优化,一轮遍历之后值或者下标没有变化说明不需要交换,可提前结束;