如何解决React.js冒泡排序问题
我正在创建一个排序算法可视化工具。当我单击“生成”时,将创建一个未排序的整数数组并将其呈现到屏幕上。当我单击“气泡排序”按钮时,我希望一次性对整个数组进行排序,但是实际上发生的是每次通过后气泡排序都会停止,因此我必须多次单击“气泡排序”才能对数组进行排序(请参见我的图片链接以供参考)。我还实现了选择排序算法,但遇到了同样的问题。我怎样才能解决这个问题?任何想法将不胜感激。
generates an array after bubble sort is clicked once
这种继续模式直到对数组排序为止。我必须连续单击“气泡排序”按钮来对数组进行排序。 这是我的气泡排序算法代码。
//============ bubble sorts array when button is clicked
bubbleSort() {
const arr = this.state.array;
const n = arr.length;
for(let i=n-1; i>0; i--) {
for(let j=0; j<i; j++) {
setTimeout(() => { // setTimeout for each swap so we can see the swap happening
if(arr[j] > arr[j+1]) {
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
this.setState({ swaps: this.state.swaps + 1 }); // each swap increment swaps state by 1
}
this.setState({ comparisons: this.state.comparisons + 1 }) // each comparison increment comparisons state by 1
},i * 10); // timeout is i * 10 millisecconds
}
}
this.setState({ array: arr });
}
这是我返回JSX的渲染函数。 render function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。