Методы, подобные sort_by
по адресу std::slice::MutableSliceAllocating
или sort_by
по адресу collections::vec::Vec
, задокументированы до «выделяют приблизительно 2 * n, где n - длина». Я не думаю, что хорошие реализации C++ std::sort
выделяют (на кучу), и все же они выполняют ту же сложность O (n log n). Хотя методы сортировки ржавчины устойчивы в отличие от C++ std :: sort.Почему методы сортировки Rust выделяют память?
Почему методы сортировки ржавчины выделяются? Для меня это не соответствует «нулевая стоимость абстракции» выставлен счет here.
Ссылка на 'sort_by' стабильна, поэтому вы должны сравнить ее с [стабильной сортировкой cpp] (http://en.cppreference.com/w/cpp/algorithm/stable_sort), которая выделяет память для достижения более низкая сложность. – aochagavia
@aochagavia, О, я не знал этого (и не удосужился проверить). Есть ли неустойчивая функция сортировки в стандартной библиотеке Rust? – kmky
Я не знаю:/... Я не удивлюсь, если нет стандартного нестабильного сорта, потому что язык не достиг 1.0. Может быть, вы можете подать PR! – aochagavia