
Python学习算法系列
文章平均质量分 79
Python学习算法系列
DoYangTan
双非保研至浙大
HBU-->ZJU
展开
-
Python学习算法系列(5):归并排序与堆排序
归并排序:是一种稳定的排序算法,适用于大规模数据,时间复杂度为 O(n log n),但需要额外的空间来存储中间数组。堆排序:是一种原地排序算法,空间复杂度 O(1),适用于大规模数据,尽管时间复杂度也是 O(n log n),但性能通常不如快速排序。排序算法优化:对于大规模数据,归并排序和堆排序是非常有效的选择。📢下一篇 Python学习算法系列(6):基数排序与计数排序,敬请期待!🚀💡。原创 2025-03-06 11:58:19 · 325 阅读 · 0 评论 -
Python学习算法系列(3):排序算法基础
排序算法的目的是将一个无序的数组(或列表)重新排列,使其按升序或降序排列。冒泡排序:通过交换相邻元素来实现排序。选择排序:每次选择最小(大)元素并放置到正确位置。插入排序:通过逐步插入元素到已排序部分来完成排序。快速排序:通过分治法分割数组并递归排序。归并排序:利用分治法将数组拆分为多个小数组进行排序。冒泡排序:简单易懂,但性能较差,适合小规模数据。选择排序:每次选择最小元素,时间复杂度较高,但性能上与冒泡排序相似。排序算法优化。原创 2025-03-06 11:56:52 · 353 阅读 · 0 评论 -
Python学习算法系列(9):图论算法与搜索算法
✅图论算法图的表示:邻接矩阵与邻接表。图的遍历:深度优先搜索(DFS)与广度优先搜索(BFS)。最短路径算法:Dijkstra 和 Bellman-Ford。拓扑排序:有向无环图(DAG)的排序方法。📢下一篇 Python学习算法系列(10):动态规划与贪心算法,敬请期待!🚀💡。原创 2025-03-09 17:36:17 · 802 阅读 · 0 评论 -
Python学习算法系列(8):回溯算法与分治算法
✅回溯算法适用于组合优化、约束满足问题。通过递归尝试所有可能的解。在解空间较大时,效率较低。✅分治算法适用于可以分解成多个子问题的问题。将大问题分解成小问题,递归解决并合并。常用于排序、查找等问题。📢下一篇 Python学习算法系列(9):图论算法与搜索算法,敬请期待!🚀💡。原创 2025-03-09 17:36:05 · 481 阅读 · 0 评论 -
Python学习算法系列(10):动态规划与贪心算法
✅动态规划适用于具有重叠子问题的最优化问题。通过存储子问题的结果避免重复计算。解决问题时需要明确状态转移方程。✅贪心算法适用于局部最优解能够导向全局最优解的问题。简单快速,但并不总是能得到最优解。解决问题时需要进行贪心选择。📢下一篇 Python学习算法系列(11):图论算法与搜索算法,敬请期待!🚀💡。原创 2025-03-09 17:36:31 · 461 阅读 · 0 评论 -
Python学习算法系列(6):基数排序与计数排序
计数排序:适用于数据范围较小的情况,时间复杂度为 O(n + k),但空间复杂度较高。基数排序:适用于大数据量的整数排序,时间复杂度为 O(nk),但它需要额外的空间来存储中间结果。排序算法优化:对于不同的输入数据,选择合适的排序算法能够显著提高效率。📢下一篇 Python学习算法系列(7):动态规划与贪心算法,敬请期待!🚀💡。原创 2025-03-06 11:59:06 · 328 阅读 · 0 评论 -
Python学习算法系列(4):插入排序与快速排序
插入排序:适用于小规模数据集,最坏情况下的性能较差,但对于近乎有序的数组,它具有较高的效率。快速排序:适用于大规模数据集,虽然最坏情况下的时间复杂度为 O(n^2),但由于其平均时间复杂度为 O(n log n),因此在实际应用中通常表现出较优的性能。排序算法优化:对于大数据集,快速排序和归并排序通常是最推荐的选择。📢下一篇 Python学习算法系列(5):归并排序与堆排序,敬请期待!🚀💡。原创 2025-03-06 11:57:36 · 382 阅读 · 0 评论 -
Python学习算法系列(2):递归算法基础
递归函数是一个调用自身的函数,并且必须有终止条件,否则会导致无限递归(死循环)。📌示例:求 n 的阶乘(n!if n == 0: # 终止条件return 1return n * factorial(n - 1) # 递归调用print(factorial(5)) # 输出 120📌解释(终止)✅递归核心:必须有终止条件,否则会无限递归!✅递归的特点必须有终止条件适用于分治问题、树结构遍历等可能导致栈溢出,需要优化✅如何优化递归使用尾递归使用lru_cache记忆化存储。原创 2025-03-06 11:55:17 · 345 阅读 · 0 评论 -
Python学习算法系列(1):算法基础与复杂度分析
算法(Algorithm)是一组清晰的指令,用于解决特定问题。print(find_max([3, 1, 7, 5, 9, 2])) # 输出 9📌解释遍历数组,每次更新最大值时间复杂度是O(n)(遍历n个元素)✅算法衡量标准时间复杂度影响运行速度空间复杂度影响存储需求✅Python 性能测试timeit测试代码执行时间选择合适的算法,优化程序性能📢下一篇 Python学习算法系列(2):Python 递归算法,敬请期待!🚀💡。原创 2025-03-06 11:54:36 · 266 阅读 · 0 评论 -
Python学习算法系列(7):动态规划与贪心算法
动态规划:适用于具有最优子结构和子问题重叠的问题,通过存储子问题的解来避免重复计算,时间复杂度通常较高。贪心算法:适用于具有贪心选择性质的问题,通常能够以较低的时间复杂度求解问题,但不能保证得到最优解。动态规划与贪心算法的选择:在实际应用中,需要根据问题的具体性质选择合适的算法。📢下一篇 Python学习算法系列(8):回溯算法与分治算法,敬请期待!🚀💡。原创 2025-03-06 11:59:58 · 818 阅读 · 0 评论