简单选择排序
/* 简单选择排序:遍历无序数列,第i轮找出第i大的数放入第i个位置
* 时间复杂度:最坏情况外层循环每遍历一个,内层循环都要遍历i到array.length获取最小元素
* n+(n-1)+..+1 o(n**2)
* 不稳定
* */
public class SimpleSelectionSort {
public static void main(String[] args) {
//int[] array = {9,8,7,6,5,4,3,2,1};
//int[] array = {1,2,3,4,5,6,7};
int[] array = {2,1,6,3,8,4,5,7,9};
//int[] array = {};
//int[] array = {1};
SimpleSelectionSort.soltion(array);
for (int i : array) {
System.out.println(i);
}
}
public static void soltion(int[] array) {
for(int i = 0;i < array.length; i++) {
//最小值下标
int minIndex = i;
//寻找未排序数列的最小值
for(int j = i;j<array.length;j++) {
if(array[minIndex] > array[j]) {
minIndex = j;
}
}
//交换当前位置上的元素和未排序数列最小值
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
}
}