diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2025-04-04 23:04:35 -0700 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2025-04-04 23:04:35 -0700 |
commit | 946661e3bef8efa11ba8079d4ebafe6fc3b0aaad (patch) | |
tree | a90605abb7bb65503a2d3f93a79e19a01aaa5e89 /lib/sort.c | |
parent | fd10709e28d2fa9015667aee56d92099fc97aa0d (diff) | |
parent | 4d395cb071a343196ca524d3694790f06978fe91 (diff) |
Merge branch 'next' into for-linus
Prepare input updates for 6.15 merge window.
Diffstat (limited to 'lib/sort.c')
-rw-r--r-- | lib/sort.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/sort.c b/lib/sort.c index 048b7a6ef9673..8e73dc55476bb 100644 --- a/lib/sort.c +++ b/lib/sort.c @@ -200,6 +200,13 @@ static size_t parent(size_t i, unsigned int lsbit, size_t size) * copy (e.g. fix up pointers or auxiliary data), but the built-in swap * avoids a slow retpoline and so is significantly faster. * + * The comparison function must adhere to specific mathematical + * properties to ensure correct and stable sorting: + * - Antisymmetry: cmp_func(a, b) must return the opposite sign of + * cmp_func(b, a). + * - Transitivity: if cmp_func(a, b) <= 0 and cmp_func(b, c) <= 0, then + * cmp_func(a, c) <= 0. + * * Sorting time is O(n log n) both on average and worst-case. While * quicksort is slightly faster on average, it suffers from exploitable * O(n*n) worst-case behavior and extra memory requirements that make |