选择排序(Selection sort)是一种简单直观的排序算法。
定义一个int类型无序的数组
int[] nums = new int[]{3,5,2,6,7,8,1};
定义一个int类型的 min ,用来存储每次比对的最小值
int min = 0;
嵌套循环数组 因为是第一个元素比对后面的元素,所以第一个循环 i < 数组长度 -1 第二个循环是取出下一个元素进行比对,所以 j = i + 1 判断下一个元素是否小于上一个元素,是,则将该元素的索引赋给min进行记录
for (int i = 0; i < nums.length - 1; i++) {
min = i;
for (int j = i + 1; j < nums.length; j++) {
if (nums[min] > nums[j]){
min = j;
}
}
...
}
第二个循环结束,判断记录的该次循环最小元素的索引是否等于i,不是,则进行元素交换
if (min != i){
int temp = nums[min];
nums[min] = nums[i];
nums[i] = temp;
}
最后,输出排序后的数组
for (int num : nums) {
System.out.println(num);
}
结果
1 2 3 5 6 7 8
源码
public class Test_02 {
public static void main(String[] args) {
int[] nums = new int[]{3,5,2,6,7,8,1};
int min = 0;
for (int i = 0; i < nums.length - 1; i++) {
min = i;
for (int j = i + 1; j < nums.length; j++) {
if (nums[min] > nums[j]){
min = j;
}
}
if (min != i){
int temp = nums[min];
nums[min] = nums[i];
nums[i] = temp;
}
}
for (int num : nums) {
System.out.print(num + "\t");
}
}
}
|