简单选择排序( Simple Select Sort )
排序的分类
基本思想:
每一趟在 n-i+1( i=1,2,···,n-1 )个记录总选择关键字最小的记录作为有序序列的第 i 个记录
图解
思路:
- 两个 for 循环嵌套,
2. 外循环从头到尾递加,i 就是剩下记录中最小记录的位置
3. 内循环从 i+1 到尾递加,与 i 进行比较,选出最小的记录
4. 选择出最小的记录赋值给 arr[ i ]
优点:
先比较,后交换,减少交换次数
时间复杂度:
O(n^2)
代码
public static void main(String[] args) {
int min = 0;
int temp = 0;
int[] arr = new int[]{1, 3, 2, 4, 5, 6};
for (int i = 0; i <arr.length-1 ; i++) {
min = i;//初始化最小值的下标
for (int j = i + 1; j < arr.length-1; j++) {
if (arr[min] > arr[j]) {
min = j;
}
}
if (i != min) {
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
System.out.println(Arrays.toString(arr));
}