选择排序
2025/7/23...大约 1 分钟
选择排序
按自然数从1开始数: 从 1到n
中选择一个一个最小的数,放到第 1
位置上 从 2到n
中选择一个一个最小的数,放到第 2
位置上 从 n-1到n
中选择一个一个最小的数,放到第 n-1
位置上 从 n到n
中选一个最小的数,就是本身,放到 n
位置上
按程序数从0开始数: 从 0到n-1
中选择一个一个最小的数,放到第 0
位置上 从 1到n-1
中选择一个一个最小的数,放到第 1
位置上 从 n-2到n-1
中选择一个一个最小的数,放到第 n-2
位置上 从 n-1到n-1
中选一个最小的数,就是本身,放到 n-1
位置上
package learn.note.algorithm.sort.three;
import java.util.Arrays;
/**
* @author Wang WenLei
* @date 2025/7/23 11:41
* @since 1.0
*/
public class ChooseSort {
public static void main(String[] args) {
// int [] data = new int[]{1,7,3,11,8,5,10,2,4,9,6};
int [] data = new int[]{11,10,9,8,7,6,5,4,3,2,1};
chooseSort(data);
Arrays.stream(data).forEach(System.out::println);
}
public static void chooseSort(int [] data){
if (data == null || data.length <= 1) {
return;
}
for (int i = 0 ; i < data.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < data.length; j++) {
if (data[j] < data[minIndex]) {
minIndex = j;
}
}
swap(data,i,minIndex);
}
}
private static void swap(int [] data,int i,int j){
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}