kifroom
文章
算法

对数器

2024年11月4日 1 分钟阅读 浏览 喜欢 0 评论

针对同一个问题可能存在多种解法,为了验证解法的正确性,需要对解法进行测试,对数器就是一种测试方法。

自己设计的更优秀的算法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
评论区在赶来的路上...