diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | lib.c | 2 |
2 files changed, 5 insertions, 1 deletions
@@ -1,5 +1,9 @@ 2012-02-22 Kaz Kylheku <kaz@kylheku.com> + * lib.c (quicksort): Incorrect pivot selection. + +2012-02-22 Kaz Kylheku <kaz@kylheku.com> + * eval.c (del_s): New symbol variable. (eval_error): nostatic added to suppress a g++ warning. (dwim_loc): Takes new value as the original unevaluated form so @@ -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); |