LazySorted: A Lazily, Partially SortedPythonList

Naftali Harris
2015 Journal of Statistical Software  
LazySorted is a Python C extension implementing a partially and lazily sorted list data structure. It solves a common problem faced by programmers, in which they need just part of a sorted list, like its middle element (the median), but sort the entire list to get it. LazySorted presents them with the abstraction that they are working with a fully sorted list, while actually only sorting the list partially with quicksort partitions to return the requested sub-elements. This enables programmers
more » ... o use naive "sort first" algorithms but nonetheless attain linear run-times when possible. LazySorted may serve as a drop-in replacement for the built-in sorted function in most cases, and can sometimes achieve run-times more than 7 times faster.
doi:10.18637/jss.v065.c01 fatcat:jyi43bgqsffinn2a45rh53sgoe