diff --git a/ypsu.cpp b/ypsu.cpp index d80a207..8a72d70 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]; // already dec index for swap + uint32_t targeti = radics[radixval] - 1; 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]; } }