针对同一个问题可能存在多种解法,为了验证解法的正确性,需要对解法进行测试,对数器就是一种测试方法。
自己设计的更优秀的算法A是否正确,可以通过一定正确但不高效的算法B来测试同一个测试值所得的结果是否一直来验证,例如验证下面冒泡算法是否正确,通过Math.sort方法验证
js
function bubbleSort(list) {
for (let i = list.length - 1; i > 0; i--) {
for (let j = 0; j < i; j++) {
if (list[j] > list[j + 1]) {
const temp = list[j]
list[j] = list[j + 1]
list[j + 1] = temp
}
}
}
}
function main(fun) {
const getList = () => {
const length = Math.floor(Math.random() * 10)
const list = new Array(length)
for (let i = 0; i < length; i++) {
list[i] = Math.floor(Math.random() * 10)
}
return list
}
const list1 = getList()
const list2 = JSON.parse(JSON.stringify(list1))
const isEqual = (lista, listb) => {
if (lista.length !== listb.length) {
return false
}
for (let i = 0; i < lista.length; i++) {
if (lista[i] !== listb[i]) {
return false
}
}
return true
}
fun(list1)
list2.sort((a, b) => a - b)
console.log(isEqual(list1, list2))
}
main(bubbleSort)
喜欢 0
评论区在赶来的路上...