算法轻入门(多语言实现)
所谓算法,就是一套解决问题的思路或者方案,也即先做什么,再做什么,最后做什么。
算法的种类有很多,本套教程涵盖了大部分常用算法,包括动态规划算法、分治算法、贪心算法、排序算法、查找算法等,它们都用来解决某一类实际问题。
本教程通俗易懂,深入浅出,不管你是初学者,还是程序员,都能轻松阅读。
为了演示数据的变化过程,或者解决问题的详细步骤,我们制作了大量优质图片,其中不少还是 gif 动图。
本教程不但提供了伪代码,还提供了源代码,复制到编译器就能一键运行。更贴心的是,考虑到读者的基础不同,我们同时提供了 C/C++、Java 和 Python 三种源码,它们都是主流语言。
算法的种类有很多,本套教程涵盖了大部分常用算法,包括动态规划算法、分治算法、贪心算法、排序算法、查找算法等,它们都用来解决某一类实际问题。
本教程通俗易懂,深入浅出,不管你是初学者,还是程序员,都能轻松阅读。
为了演示数据的变化过程,或者解决问题的详细步骤,我们制作了大量优质图片,其中不少还是 gif 动图。
本教程不但提供了伪代码,还提供了源代码,复制到编译器就能一键运行。更贴心的是,考虑到读者的基础不同,我们同时提供了 C/C++、Java 和 Python 三种源码,它们都是主流语言。
由于某些特殊原因,个别算法没有提供伪代码。
关于本教程
开始创作时间:2020-11-27
最后迭代时间:2024-01-10
当前版本:Version 3.0
字数统计:9W 字
- 教程目录:
- 1. 算法是什么
- 2. 时间复杂度和空间复杂度
- 3. 递归算法
- 4. 斐波那契数列(递归+源码+注释)
- 5. 分治算法
- 6. 找数组的最大值和最小值
- 7. 多数元素问题
- 8. 汉诺塔问题(分治+源码+动画演示)
- 9. 贪心算法
- 10. 分发饼干问题
- 11. 最大子序和问题
- 12. 部分背包问题
- 13. 动态规划算法
- 14. 零钱兑换问题
- 15. 01背包问题
- 16. 完全背包问题
- 17. 回溯算法
- 18. 子集问题
- 19. 组合问题
- 20. 全排列问题
- 21. 迷宫问题
- 22. N皇后问题
- 23. 冒泡排序算法
- 24. 双向冒泡排序算法
- 25. 插入排序算法
- 26. 选择排序算法
- 27. 希尔排序算法
- 28. 归并排序算法
- 29. 快速排序算法
- 30. 计数排序算法
- 31. 基数排序算法
- 32. 桶排序算法
- 33. 对排序算法的总结
- 34. 顺序查找算法
- 35. 二分查找算法(折半查找算法)
- 36. 插值查找算法
- 37. 哈希查找算法
- 38. 并查集
- 39. 寻找图中是否存在路径
- 40. 冗余连接问题
- 41. 最小生成树
- 42. prim算法(普里姆算法)详解
- 43. kruskal算法(克鲁斯卡尔算法)详解
- 44. 最短路径算法
- 45. 迪杰斯特拉算法(求最短路径)
- 46. 弗洛伊德算法(求最短路径)