Python 中常用的算法

打印 上一主题 下一主题

主题 802|帖子 802|积分 2406


1. 排序算法

用于将数据按特定顺序排列。


  • 冒泡排序(Bubble Sort)
  • 选择排序(Selection Sort)
  • 插入排序(Insertion Sort)
  • 快速排序(Quick Sort)
  • 归并排序(Merge Sort)
  • 堆排序(Heap Sort)
  • 计数排序(Counting Sort)
  • 基数排序(Radix Sort)
  • 桶排序(Bucket Sort)

2. 搜刮算法

用于在数据集中查找特定元素。


  • 线性搜刮(Linear Search)
  • 二分搜刮(Binary Search)
  • 深度优先搜刮(DFS, Depth-First Search)
  • 广度优先搜刮(BFS, Breadth-First Search)

3. 图算法

用于处置惩罚图布局数据。


  • Dijkstra 算法(最短路径)
  • Floyd-Warshall 算法(全部节点对的最短路径)
  • Bellman-Ford 算法(带负权边的最短路径)
  • Kruskal 算法(最小天生树)
  • Prim 算法(最小天生树)
  • 拓扑排序(Topological Sort)
  • 强连通分量(Strongly Connected Components)

4. 动态规划

用于办理具有重叠子问题和最优子布局的问题。


  • 斐波那契数列
  • 背包问题(Knapsack Problem)
  • 最长公共子序列(LCS, Longest Common Subsequence)
  • 最长递增子序列(LIS, Longest Increasing Subsequence)
  • 矩阵链乘法(Matrix Chain Multiplication)
  • 编辑距离(Edit Distance)

5. 贪默算法

在每一步选择中采取当前最优的选择。


  • 活动选择问题(Activity Selection Problem)
  • 霍夫曼编码(Huffman Coding)
  • 最小天生树(MST, Minimum Spanning Tree)
  • 硬币找零问题(Coin Change Problem)

6. 分治算法

将问题分解为更小的子问题,分别办理后再合并效果。


  • 归并排序(Merge Sort)
  • 快速排序(Quick Sort)
  • 二分搜刮(Binary Search)
  • 大整数乘法(Karatsuba Algorithm)

7. 回溯算法

通过试错的方式探求问题的解,通常用于组合问题。


  • 八皇后问题(N-Queens Problem)
  • 数独求解(Sudoku Solver)
  • 子集天生(Subset Generation)
  • 排列组合(Permutations and Combinations)

8. 字符串算法

用于处置惩罚字符串相关的问题。


  • KMP 算法(字符串匹配)
  • Rabin-Karp 算法(字符串匹配)
  • 最长回文子串(Longest Palindromic Substring)
  • 字符串编辑距离(Edit Distance)
  • Trie 树(前缀树)

9. 数学算法

用于办理数学问题。


  • 欧几里得算法(最大公约数)
  • 素数检测(Sieve of Eratosthenes)
  • 快速幂算法(Exponentiation by Squaring)
  • 斐波那契数列(Fibonacci Sequence)
  • 牛顿迭代法(求平方根)

10. 机器学习算法

用于数据分析和猜测。


  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • K 近邻算法(K-Nearest Neighbors, KNN)
  • 决策树(Decision Tree)
  • 随机森林(Random Forest)
  • 支持向量机(SVM, Support Vector Machine)
  • K 均值聚类(K-Means Clustering)

11. 其他常用算法



  • 哈希算法(Hash Functions)
  • 滑动窗口算法(Sliding Window)
  • 双指针算法(Two Pointers)
  • 位运算算法(Bit Manipulation)

示例代码:快速排序(Quick Sort)

  1. def quick_sort(arr):
  2.     if len(arr) <= 1:
  3.         return arr
  4.     pivot = arr[len(arr) // 2]
  5.     left = [x for x in arr if x < pivot]
  6.     middle = [x for x in arr if x == pivot]
  7.     right = [x for x in arr if x > pivot]
  8.     return quick_sort(left) + middle + quick_sort(right)
  9. # 示例使用
  10. arr = [3, 6, 8, 10, 1, 2, 1]
  11. sorted_arr = quick_sort(arr)
  12. print("排序后的数组:", sorted_arr)
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表