Class Merge


  • public class Merge
    extends Object
    The Merge class provides static methods for sorting an array using a top-down, recursive version of mergesort.

    This implementation takes Θ(n log n) time to sort any array of length n (assuming comparisons take constant time). It makes between ~ ½ n log2 n and ~ 1 n log2 n compares.

    This sorting algorithm is stable. It uses Θ(n) extra memory (not including the input array).

    For additional documentation, see Section 2.2 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne. For an optimized version, see MergeX.

    Author:
    Robert Sedgewick, Kevin Wayne
    • Method Detail

      • sort

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

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

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