冒泡排序为什么只对我的数字进行了一半排序? JS 和 HTML
Bubble Sort Is only sorting my numbers halfway why? JS and HTML
由于某种原因,我正在通过冒泡排序对 30 个随机生成的数字进行排序,它们从 15 排序到 29,但仍然没有从 0 到 14 排序。这就像排序由于某种原因停止了。我的尝试是将 i++ 更改为 i-- 但没有真正起作用。有谁知道循环中出了什么问题谢谢
JavaScript:
arr =new Array(30);
var length = arr.length;
function randomNumber(min,max){
var min = Math.ceil(min);
var max = Math.floor (max);
for(var i = 0; i<length; i++){
arr[i] = Math.floor(Math.random() * (max-min)) + min;
document.write("Number " +(i)+ " : " +arr[i] + "<br >"); }
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length; j++) {
if (arr[j] > arr[j + 1]){
//Swap the numbers
var tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp; //Replace adjacent number with current number
//[[arr[j],arr[j+1]] = [arr[j+1], arr[j]]];} }
document.write("Number " +(i)+ " : " +arr[i] + "<br >"); }
return arr;}
HTML调用方法:
<script>
randomNumber(1,1000);
</script>
下面是代码的输出:
Random Numbers
Bubble Sort
不要在循环中打印出数组。排序过程尚未完成。将写入命令移到它后面。
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length; j++) {
if (arr[j] > arr[j + 1]) {
var tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (var i = 0; i<length; i++) {
document.write("Number " +(i)+ " : " +arr[i] + "<br >");
}
它应该会给你正确的答案。
由于某种原因,我正在通过冒泡排序对 30 个随机生成的数字进行排序,它们从 15 排序到 29,但仍然没有从 0 到 14 排序。这就像排序由于某种原因停止了。我的尝试是将 i++ 更改为 i-- 但没有真正起作用。有谁知道循环中出了什么问题谢谢
JavaScript:
arr =new Array(30);
var length = arr.length;
function randomNumber(min,max){
var min = Math.ceil(min);
var max = Math.floor (max);
for(var i = 0; i<length; i++){
arr[i] = Math.floor(Math.random() * (max-min)) + min;
document.write("Number " +(i)+ " : " +arr[i] + "<br >"); }
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length; j++) {
if (arr[j] > arr[j + 1]){
//Swap the numbers
var tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp; //Replace adjacent number with current number
//[[arr[j],arr[j+1]] = [arr[j+1], arr[j]]];} }
document.write("Number " +(i)+ " : " +arr[i] + "<br >"); }
return arr;}
HTML调用方法:
<script>
randomNumber(1,1000);
</script>
下面是代码的输出:
Random Numbers
Bubble Sort
不要在循环中打印出数组。排序过程尚未完成。将写入命令移到它后面。
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length; j++) {
if (arr[j] > arr[j + 1]) {
var tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (var i = 0; i<length; i++) {
document.write("Number " +(i)+ " : " +arr[i] + "<br >");
}
它应该会给你正确的答案。