Skip to main content

Cython wrapper around GrailSort (https://github.com/gaming32/GrailSort-Maintained)

Project description

PyPI - Downloads PyPI - License Libraries.io SourceRank PyPI PyPI - Format GitHub last commit

Discord

Join the Discord channel for live tech support!

GrailSort for Python

GrailSort for Python is a Python API for the GrailSort algorithm.

Installation

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

Usage

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.

Example

grailsort

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()

cGrailSort

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()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

GrailSort-1.2.2.tar.gz (140.3 kB view hashes)

Uploaded Source

Built Distributions

GrailSort-1.2.2-cp39-cp39-win_amd64.whl (103.6 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

GrailSort-1.2.2-cp38-cp38-win_amd64.whl (103.8 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

GrailSort-1.2.2-cp38-cp38-manylinux1_x86_64.whl (473.5 kB view hashes)

Uploaded CPython 3.8

GrailSort-1.2.2-cp37-cp37m-win_amd64.whl (102.8 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page