随机化快速选择的算法思路并不难,这里简单提供一种健壮性、泛用性较强的实现
健壮性体现在,通过返回 Option<T> 来辨识是否成功挑选到某个值;泛用性则体现在,这个实现适用于所有 部分可比、可深拷贝 的类型构成的连续序列
Option<T>
部分可比、可深拷贝
图片后半段构造和实现的 PickUp 特性是可选的,如果不进行实现,完全可以自行解构pick_by(f: Fn(x) -> bool)函数
PickUp
pick_by(f: Fn(x) -> bool)