zoukankan      html  css  js  c++  java
  • 12.选择排序

    import java.util.Arrays;
    
    /**
     * 选择排序
     * 基本思想是:
     * 第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,
     * 第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,
     * 第三次从arr[2]~arr[n-1]中选取最小值,与arr[2]交换,…,
     * 第i次从arr[i-1]~arr[n-1]中选取最小值,与arr[i-1]交换,…,
     * 第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,
     * 总共通过n-1次,得到一个按排序码从小到大排列的有序序列
     */
    public class SelectSort {
        public static int[] selectSort(int[] arr){
            int length = arr.length;
            int minIndex = 0;
            int temp = 0;
            for (int i = 1; i < length; i++) {
                minIndex = i - 1;
                for (int j = i; j < length; j++) {
                    if (arr[j]<arr[minIndex]){
                        minIndex = j;
                    }
                }
                if (minIndex!=i-1){
                    temp = arr[minIndex];
                    arr[minIndex] = arr[i-1];
                    arr[i-1] = temp;
                }
                System.out.printf("第%d趟的结果是:%s
    ",i, Arrays.toString(arr));
            }
            System.out.println("从小到大排序结果为:"+Arrays.toString(arr));
            return arr;
        }
        public static void main(String[] args){
            selectSort(new int[]{101,34,119,1});
            //第1趟的结果是:[1, 34, 119, 101]
            //第2趟的结果是:[1, 34, 119, 101]
            //第3趟的结果是:[1, 34, 101, 119]
            //从小到大排序结果为:[1, 34, 101, 119]
        }
    }
  • 相关阅读:
    如何找到bug(8): SequentialInputHandler::run()取数逻辑
    如何找到bug(7): 检查事例完整性的逻辑
    如何寻找bug(6)
    如何寻找bug(5)
    c++ : 静态成员函数
    c++:静态数据成员
    如何打开某一个包的debug
    如何寻找bug(4)
    如何找bug(3)
    Oracle学习系类篇(二)
  • 原文地址:https://www.cnblogs.com/fly-book/p/11660470.html
Copyright © 2011-2022 走看看