TimSort


Object Hierarchy:

Vala.TimSort Vala.TimSort Vala.TimSort

Description:

internal class TimSort<G>

A stable, adaptive, iterative mergesort that requires far fewer than n*lg(n) comparisons when running on partially sorted arrays, while offering performance comparable to a traditional mergesort when run on random arrays. Like all proper mergesorts, this sort is stable and runs O(n*log(n)) time (worst case). In the worst case, this sort requires temporary storage space for n/2 object references; in the best case, it requires only a small constant amount of space.

This implementation was adapted from Tim Peters's list sort for Python, which is described in detail here: http://svn.python.org/projects/python/trunk/Objects/listsort.txt

Tim's C code may be found here: http://svn.python.org/projects/python/trunk/Objects/listobject.c

The underlying techniques are described in this paper (and may have even earlier origins):

"Optimistic Sorting and Information Theoretic Complexity"

Peter McIlroy

SODA (Fourth Annual ACM-SIAM Symposium on Discrete Algorithms), pp

467-474, Austin, Texas, 25-27 January 1993.


Namespace: Vala
Package: gee

Content:

Classes:

Constants:

Delegates:

Static methods:

Creation methods:

Methods:

Fields: