diff options
author | Bobby Bingham <koorogi@koorogi.info> | 2014-08-23 22:32:41 -0500 |
---|---|---|
committer | Bobby Bingham <koorogi@koorogi.info> | 2014-08-23 22:34:18 -0500 |
commit | 59fd773ffcf6dcabe9b419f43e5324730fd603b4 (patch) | |
tree | 10025c71c78e439708dcc4fcd69a5d90b655fc9b | |
parent | a05cbbdb939924ce04b7668225d486ae9609c2bb (diff) |
Use binary search in distribute buffer
-rw-r--r-- | common.h | 7 |
1 files changed, 2 insertions, 5 deletions
@@ -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); } |