Сортировка вставками ( insertSort ) очень проста в реализации и быстро работает для небольших массивов.
template <class T> inline ArrRef<T> insertSort123 ( ArrRef<T> & a ) { for ( nat j = 1; j < a.size(); ++j ) { const T b = a[j]; int i = j - 1; while ( i >= 0 && a[i] > b ) { a[i+1] = a[i]; --i; } a[i+1] = b; } return a; } template <class T> inline ArrRef<T> insertSort321 ( ArrRef<T> & a ) { for ( nat j = 1; j < a.size(); ++j ) { const T b = a[j]; int i = j - 1; while ( i >= 0 && a[i] < b ) { a[i+1] = a[i]; --i; } a[i+1] = b; } return a; }Функции insertSort123 сортируют элементы массивов по возрастанию, а функции insertSort321 - по убыванию. Описание шаблона классов ArrRef находится здесь. Исходники находятся в файле func1t.h. Наверх |