Commit 995e4286 authored by Subbaiah Venkata's avatar Subbaiah Venkata Committed by Linus Torvalds

lib/sort.c optimization

Hello, I fixed and tested a small bug in lib/sort.c file, heap sort
function.

The fix avoids unnecessary swap of contents when i is 0 (saves few loads
and stores), which happens every time sort function is called.  I felt the
fix is worth bringing it to your attention given the importance and
frequent use of the sort function.
Acked-by: default avatarMatt Mackall <mpm@selenic.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e30618cb
...@@ -67,7 +67,7 @@ void sort(void *base, size_t num, size_t size, ...@@ -67,7 +67,7 @@ void sort(void *base, size_t num, size_t size,
} }
/* sort */ /* sort */
for (i = n - size; i >= 0; i -= size) { for (i = n - size; i > 0; i -= size) {
swap(base, base + i, size); swap(base, base + i, size);
for (r = 0; r * 2 + size < i; r = c) { for (r = 0; r * 2 + size < i; r = c) {
c = r * 2 + size; c = r * 2 + size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment