如何仅使用标准库对LinkedList进行排序?

wsp*_*irs 6 rust

Vec提供了一种排序方法(通过Deref实现),但LinkedList没有.在Rust标准库中是否存在允许对LinkedLists 进行排序的通用算法?

Vla*_*eev 5

我认为没有内置的方法可以做到这一点.但是,您可以将列表内容移动到a中Vec,对其进行排序并将其重新转换为链接列表:

let mut vec: Vec<_> = list.into_iter().collect();
vec.sort();
let list: LinkedList<_> = vec.into_iter().collect();
Run Code Online (Sandbox Code Playgroud)

这个想法甚至没有看起来那么糟糕 - 看到这里.虽然排序链表比较快的算法存在,他们不会给你尽可能多的高速缓存性能为平面阵列排序可以做的.