【发布时间】:2021-07-30 12:13:21
【问题描述】:
我正在尝试在 javascript 中构建一些著名的排序算法的可视化表示,但我不明白为什么我的代码不会打印每次迭代,即使打印函数在 for 循环中。我只得到最终结果。
这是排序函数,特别是选择排序算法:
function selectionSort(array) {
var i, j, min_idx;
let n = array.length;
for (i = 0; i < n-1; i++)
{
min_idx = i;
for (j = i + 1; j < n; j++)
{
if (array[j] < array[min_idx])
{
min_idx = j;
}
}
var temp = array[min_idx];
array[min_idx] = array[i];
array[i] = temp;
printArray(array);
}
}
这是打印功能:
function printArray(array) {
document.getElementById('container').innerHTML ='';
for(let i = 0; i < array.length; i++)
{
document.getElementById('container').innerHTML += '<div class = "column '+i+'" id = "'+i+'" style = "height: '+array[i]+'px;"></div>';
}
}
非常感谢
【问题讨论】:
-
因为你
document.getElementById('container').innerHTML ='';就在你输出之前 -
每次调用“printArray”时都会清除 div。
document.getElementById('container').innerHTML =''; -
您也不太可能看到内容更改 - 因为在排序循环进行时浏览器不会执行任何渲染 - 您的里程可能会有所不同
标签: javascript arrays sorting animation