diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2012-02-22 15:49:07 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2012-02-22 15:49:07 -0800 |
commit | e2f5aecbef1b41f65b65bd580531f5869d1e232f (patch) | |
tree | 25c444cc895c38b022560e709b6414a70d618b86 | |
parent | 5eea3de51c979f554ce868d101f6503f982169cc (diff) | |
download | txr-e2f5aecbef1b41f65b65bd580531f5869d1e232f.tar.gz txr-e2f5aecbef1b41f65b65bd580531f5869d1e232f.tar.bz2 txr-e2f5aecbef1b41f65b65bd580531f5869d1e232f.zip |
* lib.c (quicksort): Incorrect pivot selection.
-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); |