4.3_8种常用排序算法3(选择排序:简单选择排序+堆排序)

【简单选择排序】

package com.sort.demo3;

import java.util.Arrays;

/**
 * 简单选择排序
 */
public class SelectSort {

    public static void main(String[] args) {
        int[] arr = new int[]{1,4,5,7,3,9,8,0,2,6};
        System.out.println(Arrays.toString(arr));
        selectSort(arr);
        System.out.println(Arrays.toString(arr));
    }

    /**
     * 简单选择排序
     * @param arr
     */
    public static void selectSort(int[] arr) {
        //遍历所有的数
        for (int i=0;i<arr.length;i++){
            int minIndex = i;
            //把当前的数字和后面所有的数字进行比较,并记录下最小的数的下标
            for (int j=i+1;j<arr.length;j++){
                //如果后面的数比记录的最小的数还小
                if(arr[j]<arr[minIndex]){
                    //记录下最小的那个数的下标
                    minIndex=j;
                }
            }
            //如果最小的数和当前遍历数的下标不一致,说明下标为minIndex的数比当前遍历的数更小
            if(i!=minIndex){
                int temp=arr[i];
                arr[i]=arr[minIndex];
                arr[minIndex]=temp;
            }
        }
    }
}
原文地址:https://www.cnblogs.com/HigginCui/p/10600903.html