【发布时间】:2019-10-16 14:03:09
【问题描述】:
在对数组进行冒泡排序时,它会根据输入方法给出不同的输出,手动排序正确,随机排序则不会。有任何想法吗?目标是将数字从低到高排序
我已经尝试过手动输入与随机输入相同的输入,但它仍然无法用于随机输入。
valores =["20", "78", "48", "55", "4"]
(两个函数的输入相同)
let valores = []
function randomVals() {
let cantidad
valores = []
if (rCantidad.value != '') {
cantidad = Number(rCantidad.value)
} else {
cantidad = 15
}
for (let k = 0; k < cantidad; k++) {
valores.push(((Math.random()) * 100).toFixed(0))
}
console.log(valores)
}
function agregarValor() {
let val = Number(valor.value)
valores.push(val)
console.log(valores)
}
function bubbleSort(){
for (let j=0; j<valores.length; j++){
for (let i=j+1; i<valores.length; i++){
if (valores[j]>valores[i]){
var temp=0
temp=valores[i]
valores[i]=valores[j]
valores[j]=temp
console.log(valores)
}
}
}
}
预期的排序输出:
valores=[4, 20, 48, 55, 78]
使用时给出的排序输出
randomVals() valores=["20", "4", "48", "55", "78"]
【问题讨论】:
-
您能否进一步说明您想要实现的目标?
-
@ShayeUlman 我希望数字从低到高排列。
-
你只是想对数组进行排序,或者你想弄清楚/自己实现排序函数(而不是使用内置的
sort()函数)? -
@ShayeUlman 我正在使用冒泡排序函数对数组进行排序,但只有当输入由
agregarValor()给出时,它才会正确排序,如果它们是由randomVals给出的,它不会t 排序正确。 -
请贴出所有代码,事情会变得更清楚:)
标签: javascript math random bubble-sort