JavaScript 中的冒泡排序算法
BubbleSort algorithm in JavaScript
所以我正在尝试练习 JS 并决定使用冒泡排序算法。
我写了下面的代码并意识到当数组中有 3 位数字时它不起作用。
我 运行 Chrome 控制台中的代码。
谁能告诉我问题出在哪里?
var array = [];
var length = prompt("Please enter length of array: ");
for (count = 0; count < length; count++) {
array.push(prompt("Enter a number: "));
}
for (i = 0; i < length; i++) {
for (j = 0; j < length - i - 1; j++) {
if (array[j] > array[j + 1]) {
var temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
console.log("Your list of numbers is sorted!" + array);
Window.prompt
function returns a string
, so you should convert it to number
with Number
(否则 <
会按字母顺序比较它们),例如
var arr = [];
var len = parseInt(prompt("Please enter length of array: "));
for (count = 0; count < len; count++) {
arr.push(Number(prompt("Enter a number: ")));
}
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
let tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
console.log("Your list of numbers is sorted: " + arr);
所以我正在尝试练习 JS 并决定使用冒泡排序算法。 我写了下面的代码并意识到当数组中有 3 位数字时它不起作用。 我 运行 Chrome 控制台中的代码。 谁能告诉我问题出在哪里?
var array = [];
var length = prompt("Please enter length of array: ");
for (count = 0; count < length; count++) {
array.push(prompt("Enter a number: "));
}
for (i = 0; i < length; i++) {
for (j = 0; j < length - i - 1; j++) {
if (array[j] > array[j + 1]) {
var temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
console.log("Your list of numbers is sorted!" + array);
Window.prompt
function returns a string
, so you should convert it to number
with Number
(否则 <
会按字母顺序比较它们),例如
var arr = [];
var len = parseInt(prompt("Please enter length of array: "));
for (count = 0; count < len; count++) {
arr.push(Number(prompt("Enter a number: ")));
}
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
let tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
console.log("Your list of numbers is sorted: " + arr);