类 Insertion


  • public class Insertion
    extends java.lang.Object
    The Insertion class provides static methods for sorting an array using insertion sort.

    This implementation makes ~ 1/2 n^2 compares and exchanges in the worst case, so it is not suitable for sorting large arbitrary arrays. More precisely, the number of exchanges is exactly equal to the number of inversions. So, for example, it sorts a partially-sorted array in linear time.

    The sorting algorithm is stable and uses O(1) extra memory.

    See InsertionPedantic.java for a version that eliminates the compiler warning.

    For additional documentation, see Section 2.1 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.

    • 方法概要

      修饰符和类型 方法 说明
      static int[] indexSort​(java.lang.Comparable[] a)
      Returns a permutation that gives the elements in the array in ascending order.
      static void main​(java.lang.String[] args)
      Reads in a sequence of strings from standard input; insertion sorts them; and prints them to standard output in ascending order.
      static void sort​(java.lang.Comparable[] a)
      Rearranges the array in ascending order, using the natural order.
      static void sort​(java.lang.Comparable[] a, int lo, int hi)
      Rearranges the subarray a[lo..hi) in ascending order, using the natural order.
      static void sort​(java.lang.Object[] a, int lo, int hi, java.util.Comparator comparator)
      Rearranges the subarray a[lo..hi) in ascending order, using a comparator.
      static void sort​(java.lang.Object[] a, java.util.Comparator comparator)
      Rearranges the array in ascending order, using a comparator.
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 方法详细资料

      • sort

        public static void sort​(java.lang.Comparable[] a)
        Rearranges the array in ascending order, using the natural order.
        参数:
        a - the array to be sorted
      • sort

        public static void sort​(java.lang.Comparable[] a,
                                int lo,
                                int hi)
        Rearranges the subarray a[lo..hi) in ascending order, using the natural order.
        参数:
        a - the array to be sorted
        lo - left endpoint (inclusive)
        hi - right endpoint (exclusive)
      • sort

        public static void sort​(java.lang.Object[] a,
                                java.util.Comparator comparator)
        Rearranges the array in ascending order, using a comparator.
        参数:
        a - the array
        comparator - the comparator specifying the order
      • sort

        public static void sort​(java.lang.Object[] a,
                                int lo,
                                int hi,
                                java.util.Comparator comparator)
        Rearranges the subarray a[lo..hi) in ascending order, using a comparator.
        参数:
        a - the array
        lo - left endpoint (inclusive)
        hi - right endpoint (exclusive)
        comparator - the comparator specifying the order
      • indexSort

        public static int[] indexSort​(java.lang.Comparable[] a)
        Returns a permutation that gives the elements in the array in ascending order.
        参数:
        a - the array
        返回:
        a permutation p[] such that a[p[0]], a[p[1]], ..., a[p[n-1]] are in ascending order
      • main

        public static void main​(java.lang.String[] args)
        Reads in a sequence of strings from standard input; insertion sorts them; and prints them to standard output in ascending order.
        参数:
        args - the command-line arguments