MergeSort

org.saddle.array.MergeSort$
object MergeSort

In-place merge sort implementation. This sort is stable but does mutate the given array. It is an in-place sort but it does allocate a temporary array of the same size as the input. It uses InsertionSort for sorting very small arrays.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Value members

Concrete methods

final def merge[A](in: Array[A], out: Array[A], start: Int, mid: Int, end: Int)(implicit o: Order[A]): Unit

Helper method for mergeSort, used to do a single "merge" between two sections of the input array, and write the result to the output array.

Helper method for mergeSort, used to do a single "merge" between two sections of the input array, and write the result to the output array.

The first input section starts at start (inclusive) and ends at mid (exclusive). The second input section starts at mid (inclusive) and ends at end (exclusive).

Writing to the output begins at start (inclusive).

Attributes

A

a member of the type class Order

end

the end of the second input section (exclusive)

in

the input array

mid

the end of the first input section (exclusive) and the beginning of the second input section (inclusive)

out

the output array

start

the start of the first input section (inclusive) as well as the start of the merged output

final def sort[A : ClassTag](data: Array[A]): Unit

Uses merge sort to sort the array data in place.

Uses merge sort to sort the array data in place.

If the size of the input array does not exceed the threshold startStep, uses insertion sort instead.

Attributes

A

a member of the type class Order

data

the array to be sorted

final def startStep: Int
final def startWidth: Int