1. public class SelectSort {
    2. public static void main(String[] args) {
    3. int[] arr = {101, 34, 119, 1};
    4. selectSort(arr);
    5. }
    6. //选择排序
    7. public static void selectSort(int[] arr) {
    8. //使用逐步推导的方式来,讲解选择排序
    9. //第1轮
    10. //原始的数组: 101,34,119,1
    11. //第一轮排序: 1,34,119,101
    12. int minIndex = 0;//最小值的数组索引值
    13. int min = arr[minIndex];//最小值
    14. for (int i = 0 + 1; i < arr.length; i++) {
    15. if (min > arr[i]) {
    16. min = arr[i];
    17. minIndex = i;
    18. }
    19. }
    20. //交换
    21. arr[minIndex] = arr[0];
    22. arr[0] = min;
    23. System.out.println("第一趟排序结果:");
    24. System.out.println(Arrays.toString(arr));
    25. //第2轮
    26. minIndex = 1;//最小值的数组索引值
    27. min = arr[minIndex];//最小值
    28. for (int i = 0 + 2; i < arr.length; i++) {
    29. if (min > arr[i]) {
    30. min = arr[i];
    31. minIndex = i;
    32. }
    33. }
    34. //交换
    35. arr[minIndex] = arr[1];
    36. arr[1] = min;
    37. System.out.println("第二趟排序结果:");
    38. System.out.println(Arrays.toString(arr));
    39. //第3轮
    40. minIndex = 2;//最小值的数组索引值
    41. min = arr[minIndex];//最小值
    42. for (int i = 0 + 3; i < arr.length; i++) {
    43. if (min > arr[i]) {
    44. min = arr[i];
    45. minIndex = i;
    46. }
    47. }
    48. //交换
    49. arr[minIndex] = arr[2];
    50. arr[2] = min;
    51. System.out.println("第三趟排序结果:");
    52. System.out.println(Arrays.toString(arr));
    53. }
    54. }