zoukankan      html  css  js  c++  java
  • java算法-选择排序

     选择排序算法特点:

    >每一轮找出一个最小值或者最大值,依次放在最前面的位置。在查找的过程中,用当前假定的最小值或者最大值,去跟后面所有的值进行比较。如果小或者大,就把下标给那个假定的值。一轮循环完了之后,再次判断,那个当初假定的最小或者最大,是否在一轮比较之后,发生过变化,如果变化了,那假定的值就不是那一轮比较的最小或者最大,就要进行交换。相比冒泡排序,他在空间上有优势,不需要频繁的交换。

    package com.ghostwu;
    import java.util.Random;
    
    class MySelectSort {
        private int[] arr;
        public MySelectSort(){
            arr = new int[10];
            Random rand = new Random();
            for( int i = 0; i < arr.length; i++ ){
                arr[i] = rand.nextInt( 101 );
            }
        }
        public void sort(){
            int min;
            for( int i = 0; i < arr.length; i++ ){
                min = i;
                for( int j = i + 1; j < arr.length; j++ ){
                    if( arr[min] > arr[j] ) {
                        min = j;
                    }
                }
                if( min != i ) {
                        int tmp = arr[min];
                        arr[min] = arr[i];
                        arr[i] = tmp;
                }
                display( "第" + ( i + 1 ) + "轮的比较结果: " );
            }
        }
        public void display( String info ){
            System.out.println( info );
            for( int i = 0; i < arr.length; i++ ){
                System.out.print( arr[i] + "	" );
            }
            System.out.println();
        }
    }
    
    public class SelectSort{
        public static void main( String[] args ){
    
            MySelectSort ss = new MySelectSort();
            ss.display( "排序之前:" );
            ss.sort();
            ss.display( "排序之后:" );
        }
    }

    执行结果:

    ghostwu@dev:~/java/data_struct/sort$ java com.ghostwu.SelectSort 
    排序之前:
    83    18    39    98    17    68    77    68    65    2    
    第1轮的比较结果: 
    2    18    39    98    17    68    77    68    65    83    
    第2轮的比较结果: 
    2    17    39    98    18    68    77    68    65    83    
    第3轮的比较结果: 
    2    17    18    98    39    68    77    68    65    83    
    第4轮的比较结果: 
    2    17    18    39    98    68    77    68    65    83    
    第5轮的比较结果: 
    2    17    18    39    65    68    77    68    98    83    
    第6轮的比较结果: 
    2    17    18    39    65    68    77    68    98    83    
    第7轮的比较结果: 
    2    17    18    39    65    68    68    77    98    83    
    第8轮的比较结果: 
    2    17    18    39    65    68    68    77    98    83    
    第9轮的比较结果: 
    2    17    18    39    65    68    68    77    83    98    
    第10轮的比较结果: 
    2    17    18    39    65    68    68    77    83    98    
    排序之后:
    2    17    18    39    65    68    68    77    83    98
  • 相关阅读:
    POJ-2096-Collecting Bugs(概率DP)
    2019ICPC南京网络赛总结
    LOJ-6285-数列分块入门9
    LOJ-6284-数列分块入门8
    LOJ-6283-数列分块7
    bzoj2049: [Sdoi2008]Cave 洞穴勘测
    bzoj1010: [HNOI2008]玩具装箱toy
    bzoj1597: [Usaco2008 Mar]土地购买
    bzoj1233: [Usaco2009Open]干草堆tower 单调队列优化dp
    bzoj2442&&codevs4654 单调队列优化dp
  • 原文地址:https://www.cnblogs.com/ghostwu/p/9278177.html
Copyright © 2011-2022 走看看