欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

算法简介

最编程 2024-03-30 19:54:38
...

任何一个可以用计算机解决的问题所需的计算时间都与其规模有关系,这也就意味着,通常情况下问题规模越大,所耗费的时间和计算资源越多;而问题的规模越小,所需的时间和计算资源越小,问题的求解也更加容易,因此,在处理一些困难问题的时候,我们会考虑通过缩小问题的规模而使得困难问题更加容易求解。在充分研究这类算法的规律之后,人们将这些算法总结成缩小规模算法:

  • 递归法、

凡是能够通过自身定义来定义的函数,具备的一个鲜明的特点就是,其原问题可以变成若干个子问题,并且子问题均是规模更小的原问题。递归体现了一个数学思想:化归,即把一个问题转化成另一个性质相似但规模更小的问题。若一个对象部分地包含它自己,或用它自己给自己定义,则称这个对象是递归的;若一个过程直接或间接地调用自己,则称这个过程是递归

  • 分治法、
  • 动态规划法、
  • 当前最优贪心法

在实际解题过程中,可以发现并不是任何问题都可以直观地分解成若干小问题来进行求解,


假设同一个问题可以使用不同的方法解决,那么如何衡量每个方法解决该问题的所谓难易程度呢?目前一般是使用时间复杂度。一般有数阶((y = O(1))、线性阶(y = O(n))、对数阶((y = O( l o g n log^n logn))、线性对数阶((y = O(n l o g n log^n logn))。