diff --git a/ypsu.cpp b/ypsu.cpp index 8a72d70..d80a207 100644 --- a/ypsu.cpp +++ b/ypsu.cpp @@ -196,17 +196,17 @@ static inline void mormord_sort_impl(uint32_t *a, int n, int j) noexcept { uint32_t pivoti = 0; while(pivoti < n) { uint32_t radixval = morgrab(a[pivoti], j); - uint32_t targeti = radics[radixval] - 1; + uint32_t targeti = --radics[radixval]; // already dec index for swap if(targeti > pivoti) { // swap uint32_t tmp = a[pivoti]; a[pivoti] = a[targeti]; a[targeti] = tmp; - // dec index - --radics[radixval]; } else { // progress pivot ++pivoti; + // "undec" index + ++radics[radixval]; } }