首页 > 编程语言 >Python 中常用的算法

Python 中常用的算法

时间:2024-12-31 22:28:25浏览次数:3  
标签:Sort 常用 Python arr 算法 quick 排序 Search


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)

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

# 示例使用
arr = [3, 6, 8, 10, 1, 2, 1]
sorted_arr = quick_sort(arr)
print("排序后的数组:", sorted_arr)

标签:Sort,常用,Python,arr,算法,quick,排序,Search
From: https://blog.csdn.net/hzether/article/details/144858563

相关文章

  • 聊聊Spring中最常用的11个扩展点
    目录前言1.自定义拦截器2.获取Spring容器对象2.1BeanFactoryAware接口2.2ApplicationContextAware接口2.3ApplicationListener接口3.全局异常处理4.类型转换器5.导入配置5.1普通类5.2配置类5.3ImportSelector5.4ImportBeanDefinitionRegistrar6.项目启动......
  • Bellman-Ford\SPFA单源最短路算法
    Bellman-Ford单源最短路算法不采用SPFA实现的Bellman-Ford算法"题目中的图没有特殊性质时,若SPFA是标算的一部分,题目不应当给出Bellman–Ford算法无法通过的数据范围"Bellman-Ford的原理如下先枚举节点,在枚举边,每进行一轮循环,对图上所有的边都尝试进行一次松弛操作,当......
  • WxPython跨平台开发框架之前后端结合实现附件信息的上传及管理
    在使用wxPython开发跨平台应用时,结合后端实现附件信息的上传和管理是一种常见需求。WxPython跨平台开发框架是前后端分离的框架,前端采用的是WxPython+aiohttp 来构建跨平台的界面展示和处理,后端使用FastAPI,SQLAlchemy,Pydantic,Redis等技术构建的项目。后端数据库访问......
  • 【音乐探索新技能】用Python爬虫豆瓣音乐排行榜,发现你的下一首心头好!
    Hey,亲爱的音乐控们!你是否还在为找不到心仪的好音乐而头疼?是否还在为错过那些小众但超有味道的歌曲而遗憾?别急,今天我要给你们带来一个超级实用的小技巧——用Python爬虫豆瓣音乐排行榜,让你轻松成为音乐界的“先知”!步骤一:环境准备首先,你得有个Python环境。推荐使用Anacond......
  • 融合高斯扰动与竞争学习的多目标加权平均算法(MOWAA)求解DTLZ1-DTLZ7及工程应用---盘式
    一、加权平均算法加权平均算法(WeightedAverageAlgorithm,WAA)是2024年提出的一种新型元启发式优化算法,其灵感来源于加权平均位置概念。WAA算法通过优化种群的加权平均位置来平衡全局搜索(Exploration)与局部开发(Exploitation),以提高搜索效率、加速收敛,并改善算法的整体性能......
  • Day1算法刷题(数组板块)
    二分查找注意事项left<=right,等于不能漏掉,定位到同一个元素的时候也要判断和target是否相等left=mid+1,right=mid-1而不能是mid,否则会死循环,比如nums={1,2},target=2,此时mid就会一直指向1。补充:数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分......
  • Python入门教程 —— 安装软件
    1.安装python下载python访间Python官网:https:/www.python.org  安装python自定义安装,配置Python的环境变量。 选着安装路径,然后安装安装成功后,查看python版本:python-V2.安装 pycharm选着安装路径......
  • PaddleTS :一个易用的深度时序建模的Python库
    GitHub-PaddlePaddle/PaddleTS:AwesomeEasy-to-UseDeepTimeSeriesModelingbasedonPaddlePaddle,includingcomprehensivefunctionalitymoduleslikeTSDataset,Analysis,Transform,Models,AutoTS,andEnsemble,etc.,supportingversatiletasksliketim......
  • Linked_list in python
    Problem2.1:StoreDigits(100pts)Writeafunctionstore_digitsthattakesinanintegernandreturnsalinkedlistwhereeachelementofthelistisadigitofn.YoursolutionshouldruninLineartimeinthelengthofitsinput.Note:Youmaynotuse......
  • Windows应用开发-常用工具集推荐
     .NET/WPF开发VisualStudio最新版本是VS2022,官网下载:VisualStudio2022IDE-适用于软件开发人员的编程工具VsColorOutput控制台可视化很强、编译会区分颜色输出,在VS扩展中在线安装最新VsColorOutput64Reshaper极大提升编码效率。官网下载 https://www.jetbrains.com......