From e2f5aecbef1b41f65b65bd580531f5869d1e232f Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 22 Feb 2012 15:49:07 -0800 Subject: * lib.c (quicksort): Incorrect pivot selection. --- ChangeLog | 4 ++++ lib.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9e354cb2..23c623da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-02-22 Kaz Kylheku + + * lib.c (quicksort): Incorrect pivot selection. + 2012-02-22 Kaz Kylheku * eval.c (del_s): New symbol variable. diff --git a/lib.c b/lib.c index 35395a7c..d405a991 100644 --- a/lib.c +++ b/lib.c @@ -3578,7 +3578,7 @@ static void swap(val vec, val i, val j) static void quicksort(val vec, val lessfun, val keyfun, cnum from, cnum to) { if (to - from >= 2) { - cnum pivot = (to - from) / 2; + cnum pivot = to + (to - from) / 2; cnum i, j; val pval = ref(vec, num_fast(pivot)); val pkval = funcall1(keyfun, pval); -- cgit v1.2.3