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>
Thu, 28 Jul 2016 21:35:22 +0000 (17:35 -0400)
commit1c5ef20a7b1730e1dece5894b2252743c50787cf
tree0b4b6b5c3e803e289b0814d4fe5b0155f8dcb519
parent067a4ddc192d358f54c5dc2247820bb7ec226a0c
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