Из того, что я прочитал (кратко), Java и Python выглядят так, как будто они используют timsort в своих стандартных библиотеках, тогда как метод сортировки в stdlib C называется qsort, потому что однажды он был quicksort.Как различные языки выполняют сортировку в своих стандартных библиотеках?
Какой алгоритм в настоящее время используют стандартные языки в своих стандартных библиотеках и почему они выбрали этот алгоритм? Кроме того, C отклонился от быстрой сортировки?
Я знаю, что этот вопрос не имеет «актуальных проблем, с которыми я сталкиваюсь», и может показаться открытыми для некоторых, но знание того, как/почему определенные алгоритмы выбраны в качестве стандартных, кажется довольно полезным, но относительно неопытным. Я также чувствую, что в глубине ответа, касающегося проблем, которые зависят от языка (типы данных?) И специфических для машины (кеш-хиты?), Можно было бы лучше понять, как работают разные языки и алгоритмы, чем унифицировать.
Я считаю, что OSX уникален тем, что в него включены и heapsort, и mergesort. Обе машины, над которыми я работаю, и мой uni-сервер не хватает ничего, кроме qsort и qsort_r. Кроме того, я знаю, что вопрос довольно сложно спросить, потому что он включает в себя много истории, может быть, какую-то политику, определенно некоторое интимное понимание различных систем и много чтения. Это вопрос, который, если бы не финальная неделя, я бы, вероятно, попытался ответить сам. Но даже в этом случае много исследований. Я надеялся, что кто-то там увлекся этим ответом в более ранний момент времени. – lakechfoma
Да, это вполне возможно. Моя точка зрения в основном заключается в том, что за пределами документации или взглядов на реализацию, о которой вы заботитесь напрямую, информации не так много. –
Да, я так понял. Я надеялся, что если будет принято решение в публичных списках рассылки или что у вас есть, кто-то там запомнит процесс принятия решений и обеспечит понимание. – lakechfoma