常用算法有哪些?
排序算法(如冒泡排序、快速排序)、搜索算法(如二分查找、广度优先搜索)、动态规划算法、贪心算法
什么是算法?算法的基本性质是什么?
算法是解决问题的一系列步骤和规则,用于执行特定任务或解决特定问题的有限步骤集合
算法的基本性质包括输入、输出、有限性、确定性、可行性和有效性。
复杂度分析是分析什么?
复杂度分析是分析算法的时间复杂度和空间复杂度,即算法执行所需的时间和空间资源。
算法与程序有什么不同?
算法是解决问题的一系列步骤和规则的抽象描述,而程序是算法的具体实现。
什么是P问题、NP问题?
P问题是指可以在多项式时间内解决的问题,NP问题是指可以在多项式时间内验证解的问题,但尚未找到可以在多项式时间内解决的算法
什么问题可以用贪心法解决?
最小生成树、最短路径、活动安排、零钱兑换等
举出一些实例,有些问题不能用贪心法解决的原因是什么?
贪心选择并不一定能得到全局最优解,有时候贪心选择会导致无法达到最优解。例如,背包问题就不能用贪心算法解决,因为贪心选择并不能保证得到最优解。
贪心算法与动态规划算法的异同点?
不同点在于贪心算法对每个子问题的解决方案都做出选择,不能回退;而动态规划算法会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能
贪心算法的基本要素?
贪心选择性质和最优子结构