[PATCH 0/5] Optimize number of comparisons for heap/heapsort implementaion

From: Kuan-Wei Chiu
Date: Sun Jan 21 2024 - 10:37:07 EST


Hello,

The existing implementations of heap/heapsort follow the conventional
textbook approach, where each heapify operation requires approximately
2*log2(n) comparisons. In this series, I introduce a bottom-up variant
that reduces the number of comparisons during heapify operations to
approximately log2(n), while maintaining the same number of swap
operations.

Thanks,
Kuan-Wei

Kuan-Wei Chiu (5):
bcachefs: Optimize eytzinger0_sort() using bottom-up heapsort
bcachefs: Introduce parent function for sort_cmp_size()
bcachefs: Optimize sort_cmp_size() using bottom-up heapsort
bcachefs: Optimize number of comparisons in heap_sift_down
bcache: Optimize number of comparisons in heap_sift

drivers/md/bcache/util.h | 23 +++++----
fs/bcachefs/util.c | 109 ++++++++++++++++++++++++++-------------
fs/bcachefs/util.h | 23 +++++----
3 files changed, 98 insertions(+), 57 deletions(-)

--
2.25.1