comparison liboctave/oct-sort.cc @ 9400:df1ea906c1c4

a slight speed-up in oct-sort.cc
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 26 Jun 2009 11:40:34 +0200
parents a5f6b5800f86
children 0951174cbb03
comparison
equal deleted inserted replaced
9399:a5f6b5800f86 9400:df1ea906c1c4
1804 1804
1805 if (hi - lo <= nvalues + 16) 1805 if (hi - lo <= nvalues + 16)
1806 { 1806 {
1807 // Do a linear merge. 1807 // Do a linear merge.
1808 octave_idx_type i = lo, j = 0; 1808 octave_idx_type i = lo, j = 0;
1809 while (j != nvalues && i < hi) 1809
1810 if (j != nvalues && i != hi)
1810 { 1811 {
1811 if (comp (values[j], data[i])) 1812 while (true)
1812 idx[j++] = i; 1813 {
1813 else 1814 if (comp (values[j], data[i]))
1814 i++; 1815 {
1816 idx[j] = i;
1817 if (++j == nvalues)
1818 break;
1819 }
1820 else if (++i == hi)
1821 break;
1822 }
1815 } 1823 }
1824
1816 while (j != nvalues) 1825 while (j != nvalues)
1817 idx[j++] = i; 1826 idx[j++] = i;
1818 } 1827 }
1819 else 1828 else
1820 { 1829 {