异步插入排序动画可以通过以下步骤改写为中文:
const arr = [4, 6, 2, 8, 3, 1, 9, 7, 5];
async function sort() {
const len = arr.length;
for (let i = 1; i < len; i++) {
// 暂存当前元素
const current = arr[i];
let j = i - 1;
// 移动大于当前元素的元素
while (j >= 0 && arr[j] > current) {
arr[j + 1] = arr[j];
j--;
// 设置延迟以显示排序动画
await new Promise(resolve => setTimeout(resolve, 100));
display(arr);
}
// 插入当前元素
arr[j + 1] = current;
}
}
function display(arr) {
const container = document.getElementById("container");
container.innerHTML = "";
arr.forEach(num => {
const bar = document.createElement("div");
bar.classList.add("bar");
bar.style.height = `${num * 30}px`;
container.appendChild(bar);
});
}
sort();
运行代码后,页面将呈现出一组竖条,每一组竖条代表