Package edu.princeton.cs.algs4
Class Merge
- Object
-
- edu.princeton.cs.algs4.Merge
-
public class Merge extends Object
TheMerge
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 Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int[]
indexSort(Comparable[] a)
Returns a permutation that gives the elements in the array in ascending order.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.static void
sort(Comparable[] a)
Rearranges the array in ascending order, using the natural order.
-
-
-
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 thata[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
-
-