Реализация быстрой сортировки в C?

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

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

person Delan Azabani    schedule 15.08.2010    source источник
comment
нет ничего постыдного в том, чтобы придерживаться C, если ваше приложение написано на C. Но если все написано на C++, а вы просто используете функции C там, где C++ вас смущает, вы можете просто изучить C++.   -  person Carson Myers    schedule 15.08.2010


Ответы (1)


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

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

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

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

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

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

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

person James McNellis    schedule 15.08.2010