From 59fd773ffcf6dcabe9b419f43e5324730fd603b4 Mon Sep 17 00:00:00 2001 From: Bobby Bingham Date: Sat, 23 Aug 2014 22:32:41 -0500 Subject: Use binary search in distribute buffer --- common.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/common.h b/common.h index 087ee4f..48f3d0c 100644 --- a/common.h +++ b/common.h @@ -47,11 +47,8 @@ static void rotate(char *base, size_t size, size_t shift) static void distribute_buffer(char *base, size_t bufnmel, size_t sortnmel, size_t width, cmpfun cmp) { while (bufnmel) { - char *sorted = base + bufnmel * width; - - size_t insertpos = 0; - for (; insertpos < sortnmel && cmp(base, sorted + insertpos * width) > 0; insertpos++); - + char *sorted = base + bufnmel * width; + size_t insertpos = binary_search(base, sorted, sortnmel, width, cmp); if (insertpos > 0) { rotate(base, (bufnmel + insertpos) * width, bufnmel * width); } -- cgit v1.2.3