Реализация быстрой сортировки в C? - PullRequest
3 голосов
/ 15 августа 2010

Мне действительно нравится функция qsort в C. Она настолько проста в использовании и позволяет мне откладывать изучение типов шаблонов C ++. У меня есть несколько вопросов по этому поводу:

  • Всегда ли используемый алгоритм является быстрой сортировкой или зависит от реализации компилятора?
  • Вы бы порекомендовали использовать эту функцию или есть реальная выгода для шаблонов?
  • Есть ли какие-то вещи, на которые я должен обратить внимание, чтобы избежать проблем с безопасностью / ошибок сегмента?

1 Ответ

5 голосов
/ 15 августа 2010

Используется ли алгоритм всегда как быстрая сортировка или это зависит от реализации компилятора?

Это зависит от реализации.

Вы бы порекомендовали использовать эту функцию или есть реальная выгода для шаблонов?

C не имеет шаблонов. Если вам нужна универсальная функция сортировки в C, тогда qsort - хороший выбор.

Если вы собираетесь использовать C ++, то вам следует использовать std::sort, что намного проще в использовании и обеспечивает безопасность типов.

Есть ли какие-то вещи, на которые я должен обратить внимание, чтобы избежать проблем с безопасностью / segfaults?

Если вы используете функцию неправильно (например, если вы передадите ей неверные параметры или если ваша функция сравнения содержит ошибки), то ваша программа вполне может аварийно завершить работу (или может работать некорректно). Конечно, это не относится только к qsort; это верно для всего, что используется в программе.

...