C# 语言中,常见的算法思想也广泛应用于各种问题解决方案。下面是几种 核心算法思想,并附有 C# 代码示例

1. 分治(Divide and Conquer)

📌 思想:将一个问题分解为 多个子问题,递归求解,然后合并结果。
📌 典型应用

  • 二分查找
  • 归并排序
  • 快速排序

🔹 示例:二分查找(Binary Search)

算法常用的思想总结_斐波那契数列

 

2. 动态规划(Dynamic Programming, DP)

📌 思想:存储子问题的结果,避免重复计算,提高效率。
📌 典型应用

  • 斐波那契数列
  • 最长公共子序列(LCS)
  • 背包问题

🔹 示例:斐波那契数列(DP 版本)

算法常用的思想总结_递归_02

 

3. 贪心算法(Greedy Algorithm)

📌 思想:每一步选择当前最优解,最终获得全局最优解(局部最优 -> 全局最优)。
📌 典型应用

  • 最小硬币找零问题
  • 区间调度
  • 霍夫曼编码

🔹 示例:找零问题(最少硬币)

算法常用的思想总结_全排列_03

 

4. 回溯(Backtracking)

📌 思想:通过递归+回溯尝试所有可能解,找到符合条件的解。
📌 典型应用

  • N 皇后问题
  • 全排列
  • 数独求解

🔹 示例:求数组全排列

算法常用的思想总结_斐波那契数列_04

 

5. 分支界限(Branch and Bound, BnB)

📌 思想:剪枝优化搜索,减少计算量。
📌 典型应用

  • 0-1 背包问题
  • 旅行商问题(TSP)

🔹 示例:0-1 背包(分支界限)

 

算法常用的思想总结_全排列_05

 

6. 递归(Recursion)

📌 思想:函数自己调用自己,用于解决递归性问题。
📌 典型应用

  • 汉诺塔问题
  • DFS(深度优先搜索)

🔹 示例:汉诺塔

算法常用的思想总结_递归_06