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--;
        }
    }
}
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
wataru
@wataru
Разработчик на С++, гуглер, экс-олимпиадник.
Поменяйте < на > там, где у вас сравниваются элементы. Подсказка: у вас массив передан двумя 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--;
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
30 нояб. 2020, в 09:52
1 руб./за проект
30 нояб. 2020, в 09:42
111 руб./за проект
30 нояб. 2020, в 09:28
3000 руб./за проект