选择排序
选择排序(SelectSort)选择排序是所有排序中最简单的排序算法之一,同时也是要求我们必须掌握的排序算法之一。
时间复杂度
选择排序的时间复杂度为(n2)
算法步骤
1.在未排序的序列中找到最小或者最大的元素,存放到排序序列的起始位置
2.再从余下的元素中继续找到最小或者最大的元素,放到以及排序好的序列末尾
3.重复第二步,知道所有的元素排序完成
算法图解

实现代码
package pra;import java.util.Arrays;/*** @author: Mercury* Date: 2022/3/12* Time: 11:09* Description:选择排序* Version:1.0*/
public class SelectSort {public static void main(String[] args) {int[] arrays = new int[]{1,2,3,2,5,6,2,3,7,23};System.out.println("未进行排序的数组序列:"+Arrays.toString(arrays));selectSort(arrays);System.out.println("进行选择排序后的数组序列:"+Arrays.toString(arrays));}public static void selectSort(int[] arrays){//外层循环控制的是需要比较的轮数for (int i = 0; i < arrays.length-1; i++) {//定义默认最小元素下标int min = i;//将默认最小元素与未排序的元素依次比较,//当默认元素比未排序的元素大的时候,更新默认最小元素的小标//每执行一次循环,都能找到一个当前未排序序列中最小小苏for (int j = i+1; j < arrays.length; j++) {if(arrays[min] > arrays[j]){min = j;//更新默认最小元素下标}}//若默认最小元素下标发生变化,则交换俩个元素//若默认最小元素下标未发生变化,则不需要进行交换if(min != i){arrays[min] ^= arrays[i];arrays[i] ^= arrays[min];arrays[min] ^= arrays[i];}}}
}
代码实现效果


















