选择排序

/**
 * 选择排序
 * @Author xin
 * @Date 2022/10/25 18:13
 * @Version 1.0
 */
public class SelectionSort {
    public static void swap(int[] array, int i, int j){
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    /**排序*/
    public static void selectSort(int[] array) {
        //首先考虑边界条件
        if(array == null || array.length < 2) {
            return;
        }
        for (int i = 0; i < array.length; i++) {
            int minValueIndex = i; //假设当前循环数为最小数所在坐标
            for (int j = i+1; j < array.length; j++) {
                minValueIndex = array[j] < array[minValueIndex] ? j : minValueIndex;
            }
            //到这块第一次循环已经找到最小的值的坐标,交换我们开始定义的最小数与找到的最小数的位置。
            swap(array,i,minValueIndex);
        }
    }
    public static void main(String[] args) {
        //给定一个数组
        int[] array = {5,7,1,3,23,22,53,21,4,66,68,124,8};
        PrintUtil.printIntArray(array);  //5 7 1 3 23 22 53 21 4 66 68 124 8
        selectSort(array);
        PrintUtil.printIntArray(array);  //1 3 4 5 7 8 21 22 23 53 66 68 124

        System.out.println();
    }
}
posted @   -Lucas  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示