在 C# 语言中,常见的算法思想也广泛应用于各种问题解决方案。下面是几种 核心算法思想,并附有 C# 代码示例。
1. 分治(Divide and Conquer)
📌 思想:将一个问题分解为 多个子问题,递归求解,然后合并结果。
📌 典型应用:
- 二分查找
- 归并排序
- 快速排序
🔹 示例:二分查找(Binary Search)

2. 动态规划(Dynamic Programming, DP)
📌 思想:存储子问题的结果,避免重复计算,提高效率。
📌 典型应用:
- 斐波那契数列
- 最长公共子序列(LCS)
- 背包问题
🔹 示例:斐波那契数列(DP 版本)

3. 贪心算法(Greedy Algorithm)
📌 思想:每一步选择当前最优解,最终获得全局最优解(局部最优 -> 全局最优)。
📌 典型应用:
- 最小硬币找零问题
- 区间调度
- 霍夫曼编码
🔹 示例:找零问题(最少硬币)

4. 回溯(Backtracking)
📌 思想:通过递归+回溯尝试所有可能解,找到符合条件的解。
📌 典型应用:
- N 皇后问题
- 全排列
- 数独求解
🔹 示例:求数组全排列

5. 分支界限(Branch and Bound, BnB)
📌 思想:剪枝优化搜索,减少计算量。
📌 典型应用:
- 0-1 背包问题
- 旅行商问题(TSP)
🔹 示例:0-1 背包(分支界限)

6. 递归(Recursion)
📌 思想:函数自己调用自己,用于解决递归性问题。
📌 典型应用:
- 汉诺塔问题
- DFS(深度优先搜索)
🔹 示例:汉诺塔

















