1. /**
    2. * @Author leijs
    3. * @date 2021/8/16
    4. */
    5. public class SelectSort {
    6. public static void main(String[] args) {
    7. int[] arr = {1, 4, 3, 6, 8, 4, 9, 6, 2};
    8. int[] arr1 = sort(arr);
    9. for (int i = 0; i < arr1.length; i++) {
    10. System.out.print(arr1[i]);
    11. }
    12. }
    13. /**
    14. * 选择排序:
    15. * 将第一个值看成是最小值,然后和后续的比较找到最小值和小标
    16. * 交换本次遍历的起始值和最小值
    17. * 说明:每次遍历的时候,将前面找出的最小值看成是一个有序的列表,
    18. * 后面的看成是一个无序的列表,然后每次遍历无序列表找出最小值
    19. *
    20. * @param arr
    21. */
    22. public static int[] sort(int[] arr) {
    23. for (int i = 0; i < arr.length; i++) {
    24. // 默认第一个是最小的
    25. int min = arr[i];
    26. // 记录最小的下标
    27. int index = i;
    28. // 通过和后面的数据进行比较得出最小值和下标
    29. for (int j = i + 1; j < arr.length; j++) {
    30. if (arr[j] < min) {
    31. min = arr[j];
    32. index = j;
    33. }
    34. }
    35. // 然后将最小值与本地循环的,进行交换
    36. if (index != i) {
    37. int temp = arr[i];
    38. arr[i] = min;
    39. arr[index] = temp;
    40. }
    41. }
    42. return arr;
    43. }
    44. }