【发布时间】:2021-05-26 02:45:02
【问题描述】:
async bubbleSort(values, size) {
sort_button = true;
for(var i = 0; i < size - 1; i++) {
for(var j = 0; j < size - i - 1; j++) {
if(values[j] >= values[j + 1]) {
states[j] = 1; // << Highlight comparisons
states[j + 1] = 1;
if (step_button == true) {
// TODO: Swap only two elements
} else if (step_button != true) {
await this.swap(values, j, j + 1);
}
}
states[j] = 2;
}
states[j] = 0; // << Sorted Order
}
sort_button = false;
return values;
}
我正在尝试为以下算法添加步进功能。当按下 step 按钮时,我希望执行一次交换并执行它后面的代码。我尝试过使用休息并继续,但这并没有给我想要的结果。每次按下按钮时如何简单地交换数据集中的两个元素?
【问题讨论】:
-
您需要监控按钮状态的变化。如果当前状态为“on”而先前的状态为“off”,则只需按下一个按钮。如果当前状态是“on”,而之前的状态也是“on”,那不是按下按钮,而是按住按钮。
标签: algorithm sorting break bubble-sort