Привет всем! Столкнулся с проблемой : нужно отсортировать массив фамилии и имён по алфавиту(при совпадении имен сортировать по фамилии). Загвоздка в том,что нужно это сделать сортировкой Шелла, а она, вроде, не устойчивая. Подскажите, как быть?
Сама сортировка у меня такая:
template <typename T, typename Cmp>
void shellSort( vector<T> &arr, Cmp const &cmp )
{
int size=arr.size();
int step = size / 2;// шаг.
while (step > 0)
{
for (int i = 0; i < (size - step); i++)
{
int j = i;
while (j >= 0 && cmp(arr[j], arr[j + step]))
{
T temp = arr[j];
arr[j] = arr[j + step];
arr[j + step] = temp;
j--;
}
}
step = step / 2;
}
}