On Tue, Feb 24, 2015 at 3:45 PM, Grant Edwards <invalid@invalid.invalid> wrote: > On 2015-02-24, Roy Smith <r...@panix.com> wrote: > >> http://envisage-project.eu/proving-android-java-and-python-sorting-algorithm-is-broken-and-how-to-fix-it/ > > I don't get it. > > 3.2 Corrected Python merge_collapse function > > merge_collapse(MergeState *ms) > { > struct s_slice *p = ms->pending; > > assert(ms); > while (ms->n > 1) { > Py_ssize_t n = ms->n - 2; > if ( n > 0 && p[n-1].len <= p[n].len + p[n+1].len > || (n-1 > 0 && p[n-2].len <= p[n].len + p[n-1].len)) { > if (p[n-1].len < p[n+1].len) > --n; > if (merge_at(ms, n) < 0) > return -1; > } > else if (p[n].len <= p[n+1].len) { > if (merge_at(ms, n) < 0) > return -1; > } > else > break; > } > return 0; > } > > Or does "Python function" mean something else in this context?
Recall that CPython is implemented in C. ;-) -- https://mail.python.org/mailman/listinfo/python-list