ecere/com/containers: Sort() method
authorJerome St-Louis <jerome@ecere.com>
Fri, 24 Jun 2016 04:49:58 +0000 (00:49 -0400)
committerJerome St-Louis <jerome@ecere.com>
Sat, 2 Jul 2016 20:41:11 +0000 (16:41 -0400)
commitc5159cb1fe6c646a0982259bb495e891909c3a56
tree3b336e6fcc32e1dc2e8c3c78a2ff7da03bf65cd8
parent1ac142ed4312b76c407b71242c8770c67baffac2
ecere/com/containers: Sort() method
- Takes a bool ascending parameter
- Default Merge Sort algorithm in Container base class
- Overriding with Quick Sort invocation in Array
- Using sort_r() method from Isaac Turner nicely wrapping qsort_r, qsort_s and a fallback Quick Sort implementation
- Non-integer indexed classes (e.g. (Custom)AVLTree, Map) do not require sorting
- June 23rd, 2016 eC Meetup Ottawa
- LinkList and List Sort() optimizations
- Array Sort optimizations:
   - OnCompare called directly from qsort*() when possible
   - Moved branching outside qsort*() calls
   - Faster & Better fall-back algorithm by Darel Rex Finley
   - Made qsortr() and qsortrx() public
- Container: Pre-allocation optimization in base Container
ecere/src/com/containers/Array.ec
ecere/src/com/containers/BuiltInContainer.ec
ecere/src/com/containers/Container.ec
ecere/src/com/containers/LinkList.ec