При попытке оценить производительность программы я всегда рассматривал функцию sort () как функцию с наихудшей производительностью-n ^ 2.Однако я натолкнулся на страницу Википедии:
sort (C ++)
В которой говорится, что sort () библиотеки GNU C использует сначала гибридный алгоритм сортировки, называемый Introsort,затем сделайте вставку сортировки.Соответствующая страница Introsort утверждает, что этот алгоритм имеет худшую производительность nlogn.Однако, поскольку я не знаком с этим алгоритмом, у меня все еще есть следующие опасения по поводу sort ():
1) Может ли гибридный алгоритм, используемый GNU sort (), гарантировать производительность O (nlogn)?Если да, то насколько большими могут быть постоянные издержки nlogn?
2) Существуют ли другие реализации, которые могут привести к тому, что sort () будет работать хуже, чем эта (или лучше, что было бы здорово)?
РЕДАКТИРОВАТЬ: Ответ Кевину: упомянутая сортировка () является std :: sort ().
Спасибо!