置乱器

arr[n] 与arr[0,n-1]中的某一个元素进行交换。

  1. //对[lo, hi)置乱
  2. unsort(lo, hi) {
  3. //arr[n] 与arr[0,n-1]中的某一个元素进行交换
  4. for (let i = hi - lo; i > 0; i--){
  5. const k = Math.floor(Math.random() * (i)) + lo;
  6. [this.#elem[i+lo],this.#elem[k]] = [this.#elem[k],this.#elem[i+lo]]
  7. }
  8. }

判等器和比较器

两个对象是否相等是比对
两个对象的相对大小是比较
有些对象只能比对但不能比较;反之,支持比较的对象未必 支持比对

算法实现的简洁性与通用性,在很大程度上体现于:针对整数等特定数据类型的某种实现,
可否推广至可比较或可比对的任何数据类型,而不必关心如何定义以及判定其大小或相等关系。

无序查找

插入

删除

唯一化

遍历