Сортировка вставками ( 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. Наверх |