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]
        }
    }
  • 相关阅读:
    Servlet编程实例 续2
    Servlet编程实例 续1
    Servlet编程实例
    Servlet包介绍
    Servlet处理流程分析
    Servlet简介
    初始String
    类对象的定义
    类和对象
    JDBC编程之程序优化
  • 原文地址:https://www.cnblogs.com/fly-book/p/11660470.html
Copyright © 2011-2022 走看看