@@ -1784,7 +1784,7 @@ binarysort(MergeState *ms, const sortslice *ss, Py_ssize_t n, Py_ssize_t ok, flo
17841784 if (adapt ) {
17851785 Py_ssize_t diff = ok ; // jump (jump out on 1st loop to not kick in)
17861786 Py_ssize_t last = ok >> 1 ; // mid point (simple binary on 1st loop)
1787- float ns = 5.0f ; // number of successes (a bit of head start)
1787+ Py_ssize_t ns = 5 ; // number of successes (a bit of head start)
17881788 float seen = 0.0f ; // number of loops done
17891789 // const float adapt = 1.3; // adaptivity strength
17901790 for (; ok < n && ns * adapt >= seen ; ++ ok ) {
@@ -1802,27 +1802,26 @@ binarysort(MergeState *ms, const sortslice *ss, Py_ssize_t n, Py_ssize_t ok, flo
18021802 IFLT (pivot , a [M ]) {
18031803 R = M ;
18041804 if (L < R ) {
1805- diff += 1 ;
18061805 M = R - diff ;
18071806 if (M < L )
18081807 M = L ;
18091808 IFLT (pivot , a [M ])
18101809 R = M ;
18111810 else
18121811 L = M + 1 ;
1813- ns += (float )( R - L ) * 8 < ok ;
1812+ ns += (R - L ) * 8 < ok ;
18141813 }
18151814 else {
1816- ns += 2.0f ;
1815+ ns += 2 ;
18171816 }
18181817 }
18191818 else {
18201819 L = M + 1 ;
1821- ns += (float )( R - L ) * 4 < ok ;
1820+ ns += (R - L ) * 4 < ok ;
18221821 }
18231822 }
18241823 else {
1825- ns += 2.0f ;
1824+ ns += 2 ;
18261825 }
18271826 }
18281827 else {
@@ -1834,28 +1833,27 @@ binarysort(MergeState *ms, const sortslice *ss, Py_ssize_t n, Py_ssize_t ok, flo
18341833 M = R - 1 ;
18351834 IFLT (pivot , a [M ]) {
18361835 R = M ;
1837- ns += (float )( R - L ) * 4 < ok ;
1836+ ns += (R - L ) * 4 < ok ;
18381837 }
18391838 else {
18401839 L = M + 1 ;
18411840 if (L < R ) {
1842- diff += 1 ;
18431841 M = L + diff ;
18441842 if (M >= R )
18451843 M = R - 1 ;
18461844 IFLT (pivot , a [M ])
18471845 R = M ;
18481846 else
18491847 L = M + 1 ;
1850- ns += (float )( R - L ) * 8 < ok ;
1848+ ns += (R - L ) * 8 < ok ;
18511849 }
18521850 else {
1853- ns += 2.0f ;
1851+ ns += 2 ;
18541852 }
18551853 }
18561854 }
18571855 else {
1858- ns += 2.0f ;
1856+ ns += 2 ;
18591857 }
18601858 }
18611859
@@ -1887,9 +1885,9 @@ binarysort(MergeState *ms, const sortslice *ss, Py_ssize_t n, Py_ssize_t ok, flo
18871885 }
18881886 if (ok >= n ) {
18891887 // Successfully ran fully adaptive
1890- // Else go to simple binary sort
18911888 return 1 ;
18921889 }
1890+ // Else go to simple binary sort
18931891 }
18941892
18951893 /* Regular insertion sort has average- and worst-case O(n**2) cost
0 commit comments