JavaScript 冒泡排序修改(循环条件 "for" 不工作)
JavaScript bubble sort modification (condition of the loop "for" is not working)
循环 "i" 必须中断,当循环 "j" return swap = false
的 if 语句时,但它不会那样做,并继续执行所有 arr.length
var arr = [0, 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13];
var n = arr.length;
var t;
var swap;
for (var i = 0; (i < n) && (swap = true); i++) {
for (var j = 0; j < ( n - (i + 1) ); j++) {
if ( arr[j] > arr[j + 1] ) {
t = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = t;
swap = true;
} else { swap = false }
}
};
你可以使用休息时间;停止 for() 循环的语句
Have a look here
var arr = [0, 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13];
var n = arr.length;
var t;
var swap = true;
for (var i = 0; i < n; i++) {
if (!swap) {
break;
}
for (var j = 0; j < ( n - (i + 1) ); j++) {
if ( arr[j] > arr[j + 1] ) {
t = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = t;
} else {
swap = false;
}
}
};
alert(performance.now());
alert(arr);
这一行
for (var i = 0; (i < n) && (swap = true); i++) {
为交换分配一个值(即 swap = true),而您实际上想要检查它的值(即 swap === true)。
请注意,swap 最初是未定义的,因此如果您根据上述内容更改代码 (swap === true),您可能需要在进入循环之前明确将其设置为 true。
这一行
for (var i = 0; (i < n) && (swap = true); i++) {
为交换分配一个值(即 swap = true),而您实际上想要检查它的值(即 swap === true)。
请注意,swap 最初是未定义的,因此如果您根据上述内容更改代码(swap === true),您可能需要在进入循环之前明确将其设置为 true。
循环 "i" 必须中断,当循环 "j" return swap = false
的 if 语句时,但它不会那样做,并继续执行所有 arr.length
var arr = [0, 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13];
var n = arr.length;
var t;
var swap;
for (var i = 0; (i < n) && (swap = true); i++) {
for (var j = 0; j < ( n - (i + 1) ); j++) {
if ( arr[j] > arr[j + 1] ) {
t = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = t;
swap = true;
} else { swap = false }
}
};
你可以使用休息时间;停止 for() 循环的语句 Have a look here
var arr = [0, 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13];
var n = arr.length;
var t;
var swap = true;
for (var i = 0; i < n; i++) {
if (!swap) {
break;
}
for (var j = 0; j < ( n - (i + 1) ); j++) {
if ( arr[j] > arr[j + 1] ) {
t = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = t;
} else {
swap = false;
}
}
};
alert(performance.now());
alert(arr);
这一行
for (var i = 0; (i < n) && (swap = true); i++) {
为交换分配一个值(即 swap = true),而您实际上想要检查它的值(即 swap === true)。
请注意,swap 最初是未定义的,因此如果您根据上述内容更改代码 (swap === true),您可能需要在进入循环之前明确将其设置为 true。
这一行
for (var i = 0; (i < n) && (swap = true); i++) {
为交换分配一个值(即 swap = true),而您实际上想要检查它的值(即 swap === true)。
请注意,swap 最初是未定义的,因此如果您根据上述内容更改代码(swap === true),您可能需要在进入循环之前明确将其设置为 true。