Как отсортировать массив?

Дан массив с отрицательными, нулями и положительными числами.
Как их отсортировать таким образом, чтобы сначала шли нули, а потом все остальные?
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 2
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Два варианта - либо написать свой чокнутый компаратор, который будет особым образом относится к нулю, а затем сделать std::sort.
Либо отсортировать как обычно, а потом перенести нули в начало.
Ответ написан
@anikavoi
Очень просто - qsort или std::sort имеют параметром вызов процедуры сравнения.
Вот в этой процедуре перед сравнение привести сравниваемые значения в беззнаковое (unsigned), и уже потом сравнивать. Тогда -1 станет 0xffff и будет > 0.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы