本文已参与「新人创作礼」活动,一起开启掘金创作之路。
选择排序算法(不稳定排序算法,相同两个数,有可能会调换位置)
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,放在已排好序的数列的最后,直到全部待排序的数据元素排完,
34,4,56,17,90,65 34与4比较,4小,4跟其他比
4,34,56,17,90,65 第一轮,比较5次
4,17,56,34,90,65 第二轮,比较4次
4,17,34,56,90,65 第三轮,比较3次
4,17,34,56,90,65 第四轮,比较2次
4,17,34,56,65,90 第五轮,比较1次
int[] nums = {34,4,56,17,90,65};
int minIndex = 0;
// 控制轮数
for (int i = 0; i < nums.length-1; i++) {
minIndex = i;//每轮假设一个最小值下标
for (int j = i+1; j < nums.length; j++) {
if (nums[minIndex] > nums[j]) {
minIndex = j;
}
}
// 判断需要交换的数下标是否为自己
if (minIndex != i) {
nums[minIndex] = nums[minIndex]+nums[i];
nums[i] = nums[minIndex]-nums[i];
nums[minIndex] = nums[minIndex]-nums[i];
}
}
for (int i : nums) {
System.out.print(i+" ");
}