置乱器
arr[n] 与arr[0,n-1]中的某一个元素进行交换。
//对[lo, hi)置乱
unsort(lo, hi) {
//arr[n] 与arr[0,n-1]中的某一个元素进行交换
for (let i = hi - lo; i > 0; i--){
const k = Math.floor(Math.random() * (i)) + lo;
[this.#elem[i+lo],this.#elem[k]] = [this.#elem[k],this.#elem[i+lo]]
}
}
判等器和比较器
两个对象是否相等是比对
两个对象的相对大小是比较
有些对象只能比对但不能比较;反之,支持比较的对象未必
支持比对
算法实现的简洁性与通用性,在很大程度上体现于:针对整数等特定数据类型的某种实现,
可否推广至可比较或可比对的任何数据类型,而不必关心如何定义以及判定其大小或相等关系。