选择排序算法代码实现

上代码:

package com.liu.pro;

import java.util.Arrays;

public class selectionSort {
    public static void main(String[] args) {
        int[] arr = {9,8,5,6,2,7,1,3,4};
        sort(arr);
        System.out.println("选择排序:");
        System.out.println(Arrays.toString(arr));
        sort1(arr);
        System.out.println("选择排序优化:");
        System.out.println(Arrays.toString(arr));
    }

    /**
     * 选择排序
     * @param arr 传入的数组
     */
    public static void sort(int[] arr){
//      遍历0~arr.length-2(包含)
        for (int i = 0; i < arr.length - 1; i++) {
//          定义一个最小值的索引
            int index = i;
//          定义一个最小值并赋初始值
            int min = arr[i];
//          遍历从j=i+1,到最后一个数
            for (int j = i + 1; j < arr.length; j++) {
//              如果找的数值比最小值还要小,替换这个最小值和最小值的索引
                if (min > arr[j]){
                    min = arr[j];
                    index = j;
                }
            }
//          给arr[i]赋值min
//          给arr[index]赋值
            arr[index] = arr[i];
            arr[i] = min;
        }
    }

    /**
     * 选择排序优化
     * @param arr 传入的数组
     */
    public static void sort1(int[] arr){
        for (int i = 0; i < arr.length - 1; i++) {
            int index = i;
            int min = arr[i];
            for (int j = i + 1; j < arr.length; j++) {
                if (min > arr[j]){
                    min = arr[j];
                    index = j;
                }
            }
//          如果index != i 再进行更换,否则不需要进行更换
            if(index != i){
                arr[index] = arr[i];
                arr[i] = min;
            }

        }
    }
}

测试结果:

 

posted @ 2022-07-15 21:06  努力学习の小白  阅读(76)  评论(0编辑  收藏  举报
Live2D