NQUARE
@NQUARE

Как переделать функцию сортировки вставками по убыванию?

Утро доброе.

Как переделать эту функция сортировки вставками что бы оно сортировала по убыванию?
void insort(int* l, int* r) {
    for (int *i = l + 1; i < r; i++) {
        int* j = i;
        while (j > l && *(j - 1) > *j) {
            swap(*(j - 1), *j);
            j--;
        }
    }
}
  • Вопрос задан
  • 84 просмотра
Решения вопроса 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Поменяйте < на > там, где у вас сравниваются элементы. Подсказка: у вас массив передан двумя int указателями. Т.е. сами элементы - это там где вы разименовываете какие-то указатели (это операция *что-то).
Ответ написан
Комментировать
NQUARE
@NQUARE Автор вопроса
void insort(int* l, int* r, bool rev = false) {
    for (int *i = l + 1; i < r; i++) {
        int* j = i;
        while (j > l && *(j - 1) < *j) {
           	swap(*(j - 1), *j);
           	j--;
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы