Join the Discord channel for live tech support!
GrailSort for Python is a Python API for the GrailSort algorithm.
You can install GrailSort for Python from source:
$ git clone https://github.com/gaming32/grailsort
$ cd grailsort
$ python setup.py install
Or you can install it from PyPI:
$ python -m pip install GrailSort
GrailSort for Python comes with two modules: a strict one, and a slower one. The strict module (cGrailSort
) only deals with array.array('d')
objects, while the slower module (grailsort
) deals with any Python sequence that contains comparable objects.
It is generally unnescessary to deal with the grailsort
module, as you might as well use the built-in list.sort
method or the sorted
function. However, TimSort is not in-place, while GrailSort is. cGrailSort
is useful when you need to sort with speed.
import grailsort
import random
def print_out_of_order_index():
index = next((i for i in range(len(l) - 1) if l[i] > l[i + 1]), None)
print('Out of order index:', index)
l = list(range(1024))
print_out_of_order_index()
random.shuffle(l)
print_out_of_order_index()
grailsort.grailsort(l)
print_out_of_order_index()
import cGrailSort
import array
import random
def print_out_of_order_index():
index = next((i for i in range(len(a) - 1) if a[i] > a[i + 1]), None)
print('Out of order index:', index)
a = array.array('d', range(1024))
print_out_of_order_index()
random.shuffle(a)
print_out_of_order_index()
cGrailSort.grailsort(a)
print_out_of_order_index()