// === 比较与交换(带动画与音效)===
await compare(i, j) // 比较 array[i] 和 array[j],返回 true 表示前者 > 后者
await swap(i, j) // 交换并显示动画
// === 标记与等待 ===
await mark(i, [j], [type]) // 标记颜色: 'compare'(红), 'swap'(橙), 'pivot'(紫)
await sleep(ms) // 等待毫秒
// === 数组查询(无动画)===
getLength() // 返回当前数组长度
getValue(i) // 获取 array[i]
getArrayCopy() // 返回数组浅拷贝
// === 数组修改(立即刷新画布)===
setValue(i, val) // 设置 array[i] = val
setArray(newArr) // 整体替换数组
push/pop/shift/unshift // 增删元素
splice/fill/reverse/sort // 其他修改方法
// === 示例:奇偶排序 ===
const n = getLength();
for (let phase = 0; phase < n; phase++) {
for (let i = phase % 2; i < n - 1; i += 2) {
await mark(i, i+1);
if (await compare(i, i+1)) {
await swap(i, i+1);
}
}
}
const n = getLength();
for (let i = 1; i < n; i++) {
let j = i;
while (j > 0 && await compare(j - 1, j)) {
await swap(j - 1, j);
j--;
}
}