類似sort_by
的方法在std::slice::MutableSliceAllocating
或sort_by
上collections::vec::Vec
記載爲「分配大約2 * n,其中n是長度」。我不認爲好的C++ std::sort
實現分配(在堆上),但它們完成相同的O(n log n)複雜性。雖然,Rust排序方法與C++ std :: sort不同,但它們是穩定的。爲什麼Rust的排序方法分配內存?
爲什麼Rust排序方法分配?對我來說,它不適合「零成本抽象」票據廣告here。
您引用的'sort_by'是穩定的,所以您應該將它與cpp的[穩定排序](http://en.cppreference.com/w/cpp/algorithm/stable_sort)進行比較,它會分配內存以實現複雜性較低。 – aochagavia 2014-10-07 13:03:29
@aochagavia,哦,我不知道(也沒有打擾檢查)。 Rust標準庫中是否存在不穩定的排序功能? – kmky 2014-10-07 13:11:36
我不知道:如果沒有標準的不穩定排序,我不會感到驚訝,因爲語言還沒有達到1.0。也許你可以提交公關! – aochagavia 2014-10-07 13:51:11