• 排序


    排序算法的模版

    public class Example {
        public static void sort(Comparable[] a) {
            // 不同的算法不同的实现
        }
        
        public static boolean less(Comparable v, Comparable w) {
            return v.compareTo(w) < 0;
        }
        
        public static void exch(Comparable[] a, int i, int j) {
            Comparable t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
        
        private static void show(Comparable a) {
            for (int i = 0; i < a.length; i++) {
                StdOut.print(a[i] + " ");
            }
            StdOut.println();
        }
        
        public static boolean isSorted(Comparable[] a) {
            for (int i = 1; i < a.length; i++) {
                if (less(a[i], a[i - 1]) {
                    return false;
                }
            }
            return true;
        }
    }
    

    选择排序

    一种最简单的排序算法是这样的:

    首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。

    这种方法叫选择排序,因为它在不断地选择剩余元素之中的最小者。

    public class Selection {
        public static void sort(Comparable[] a) {
            // 升序排列
            int N = a.length;
            for (int i = 0; i < N; i++) {
                int min = i;
                for (int j = i + 1; j < N; j++) {
                    if (less(a[j], a[min])) {
                        min = j;
                    }
                }
                exch(a, i, min);
            }
        }
    }
    

    插入排序

    public class Insertion {
        public static void sort(Comparable[] a) {
            int N = a.length;
            for (int i = 1; i < N; i++) {
                for (j = i; j > 0 && less(a[j], a[j - 1]); j--) {
                    exch(a, j, j - 1);
                }
            }
        }    
    }
    
  • 相关阅读:
    阿里巴巴excel工具easyexcel 助你快速简单避免OOM
    IoC和AOP的理解
    WebSocket和kafka实现数据实时推送到前端
    Swagger使用指南
    转载:对于马老师对996的看法
    基础:新建个maven项目
    eclipse集成lombok
    多线程
    jar包

  • 原文地址:https://www.cnblogs.com/okadanana/p/5940163.html
Copyright © 2020-2023  润新知