radareorg / sdb

Simple and fast string based key-value database with support for arrays and json
https://www.radare.org/
MIT License
217 stars 62 forks source link

Bring merge sort and insertion sort cmp function semantics together #212

Closed anisse closed 4 years ago

anisse commented 4 years ago

Detailed description

Merge sort uses cmp (a, b) < 0 for its first test branch, and insertion sort cmp (a, b) > 0 ; which means the 0 boundary goes in one case in one branch, and in the other sort function in the other branch.

We keep the semantics of the insertion sort, it makes it possible to support compare function that return true/false instead of a distance between items.

Add a test that was previously failing for merge sort, but working with insertion sort, although the function is not exposed, it only triggers at > 43 elements.

The main difference is the test function that sends true/false instead of a difference between two integers.

Test plan

See included test

Closing issues

N/A