美文网首页
算法-排序

算法-排序

作者: lazyguy | 来源:发表于2017-11-16 16:23 被阅读0次

    基础类:

    提供辅助方法和待排序的数组

    package org.yyf.algorithm.sort;
    
    import java.util.Arrays;
    
    public class Base {
      //带排序的数组
      protected static final int[] DISORDER_ARRAY = new int[]{3, 4, 5, 1, 2, 4, 4, 2, 6, 9, 0, 8, 7};
      //数组的长度
      protected static final int ARR_LEN = DISORDER_ARRAY.length;
    
      //交换相应2个位置的数
      public static void exchange(int[] srcArr, int indexI, int indexJ) {
        int temp = srcArr[indexI];
        srcArr[indexI] = srcArr[indexJ];
        srcArr[indexJ] = temp;
      }
    
      //打印数组
      public static void show() {
        System.out.println(Arrays.toString(DISORDER_ARRAY));
      }
    }
    

    选择排序

    package org.yyf.algorithm.sort;
    
    import java.util.Arrays;
    
    /**
     * Created by tobi on 16-10-21.
     * 选择排序的实质就是每轮选出最小的那个数,依次放到数组的前面去,感觉是最好理解的一种
     * <p>
     * 简单选择排序的比较次数与序列的初始排序无关。 假设待排序的序列有 N 个元素,则比较次数总是N (N - 1) / 2。
     * 而移动次数与序列的初始排序有关。当序列正序时,移动次数最少,为 0.
     * 当序列反序时,移动次数最多,为3N (N - 1) /  2。
     */
    public class SelectSort extends Base {
    
        public static void main(String[] args) {
            for (int i = 0; i < ARR_LEN; i++) {
                for (int j = i; j < ARR_LEN; j++) {
                    if (DISORDER_ARRAY[j] < DISORDER_ARRAY[i]){
                        exchange(DISORDER_ARRAY, i, j);
                    }
                }
            }
            System.out.println(Arrays.toString(DISORDER_ARRAY));
        }
    }
    
    

    相关文章

      网友评论

          本文标题:算法-排序

          本文链接:https://www.haomeiwen.com/subject/alalvxtx.html