Python进阶教程:算法与数据结构入门
目录Python进阶教程算法与数据结构入门一、时间复杂度二、常用数据结构2.1 列表与字典2.2 栈Stack2.3 队列Queue三、排序算法3.1 冒泡排序O(n²)3.2 快速排序O(n log n)四、查找算法五、递归六、动态规划入门七、实战实现 LRU 缓存总结Python进阶教程算法与数据结构入门本文是Python 入门教程系列的第 18 篇扩展篇。算法与数据结构是编程的内功本篇介绍最核心的几种用 Python 实现。一、时间复杂度衡量算法效率用大 O 表示法描述执行时间随数据规模增长的速度复杂度含义示例O(1)常数时间数组按下标访问O(log n)对数时间二分查找O(n)线性时间遍历列表O(n log n)线性对数快速排序O(n²)平方时间冒泡排序二、常用数据结构2.1 列表与字典# 列表有序、可重复fruits[苹果,香蕉,橙子]fruits.append(葡萄)print(fruits[0],len(fruits))# 字典键值对、查找 O(1)scores{张三:90,李四:85}print(scores[张三])print(scores.get(王五,不存在))2.2 栈Stack# 栈后进先出LIFO用列表实现stack[]stack.append(1)# 入栈stack.append(2)stack.append(3)print(stack.pop())# 3 出栈print(stack[-1])# 2 查看栈顶print(len(stack)0)# 判断是否为空2.3 队列Queuefromcollectionsimportdeque# 队列先进先出FIFOqueuedeque([a,b,c])queue.append(d)# 入队print(queue.popleft())# a 出队print(queue)# deque([b, c, d])三、排序算法3.1 冒泡排序O(n²)defbubble_sort(arr):nlen(arr)foriinrange(n-1):forjinrange(n-1-i):ifarr[j]arr[j1]:arr[j],arr[j1]arr[j1],arr[j]returnarrprint(bubble_sort([5,2,8,1,9]))# [1, 2, 5, 8, 9]3.2 快速排序O(n log n)defquick_sort(arr):iflen(arr)1:returnarr pivotarr[len(arr)//2]left[xforxinarrifxpivot]mid[xforxinarrifxpivot]right[xforxinarrifxpivot]returnquick_sort(left)midquick_sort(right)print(quick_sort([5,2,8,1,9]))# [1, 2, 5, 8, 9]四、查找算法# 二分查找要求有序O(log n)defbinary_search(arr,target):left,right0,len(arr)-1whileleftright:mid(leftright)//2ifarr[mid]target:returnmidelifarr[mid]target:leftmid1else:rightmid-1return-1nums[1,3,5,7,9,11]print(binary_search(nums,7))# 3print(binary_search(nums,8))# -1五、递归# 递归函数调用自身deffactorial(n):ifn1:return1returnn*factorial(n-1)print(factorial(5))# 120# 斐波那契带缓存避免重复计算fromfunctoolsimportlru_cachelru_cache(maxsizeNone)deffib(n):ifn2:returnnreturnfib(n-1)fib(n-2)print(fib(50))# 12586269025六、动态规划入门# 经典问题爬楼梯每次 1 或 2 阶defclimb_stairs(n):ifn2:returnn dp[0]*(n1)dp[1],dp[2]1,2foriinrange(3,n1):dp[i]dp[i-1]dp[i-2]returndp[n]print(climb_stairs(10))# 89七、实战实现 LRU 缓存fromcollectionsimportOrderedDictclassLRUCache:最近最少使用缓存def__init__(self,capacity):self.cacheOrderedDict()self.capacitycapacitydefget(self,key):ifkeynotinself.cache:return-1self.cache.move_to_end(key)# 标记为最近使用returnself.cache[key]defput(self,key,value):ifkeyinself.cache:self.cache.move_to_end(key)self.cache[key]valueiflen(self.cache)self.capacity:self.cache.popitem(lastFalse)# 淘汰最久未用cacheLRUCache(2)cache.put(1,A)cache.put(2,B)print(cache.get(1))# Acache.put(3,C)# 淘汰 key2print(cache.get(2))# -1print(cache.get(3))# C总结本篇介绍了时间复杂度、常用数据结构栈、队列、排序与查找算法、递归和动态规划入门并用 LRU 缓存串联实战。刷题建议从 LeetCode 简单题开始每天 1-2 题坚持就是胜利。

相关新闻

AI创业者通识日报 | 2026年8月5日

AI创业者通识日报 | 2026年8月5日

AI创业者通识日报 | 2026年8月5日 01 今日头条 TOP STORY重磅 阿里Qwen3.8-Max正式发布:2.4万亿参数,16天自主编程,下周开源 8月3日,阿里巴巴正式发布新一代旗舰大模型 Qwen3.8-Max ,总参数量达2.4万亿(稀疏…

2026/8/26 16:06:25 阅读更多 →
AI创业者通识日报 | 2026年8月13日

AI创业者通识日报 | 2026年8月13日

AI创业者通识日报 | 2026年8月13日AI竞争的下半场已悄然换轨——不再是"比谁模型大",而是"比谁用得好、用得起、用得安全"。今日聚焦AI编程赛道估值狂飙、前沿模型安全审查趋严、欧盟AI法案全面执法、以及创业者如何在巨头看不上的地方找到机会…

2026/8/26 16:00:50 阅读更多 →
共享电动车运维端用什么框架? Vue 2 + Vant + 高德地图落地方案

共享电动车运维端用什么框架? Vue 2 + Vant + 高德地图落地方案

深圳猎吧科技租车运维端介绍:车辆调度与换电管理的移动端方案 在租赁(电动车)行业,商家每天要面对三件事:车在哪、电够不够、订单有没有异常。深圳猎吧科技推出的租车运维端(sass-moblie-admin)…

2026/8/25 12:48:12 阅读更多 →

最新新闻

手机版deepseek里复制代码怎么用?AI导出鸭一键无损导出格式不崩

手机版deepseek里复制代码怎么用?AI导出鸭一键无损导出格式不崩

手机版DeepSeek生成代码后直接复制粘贴到本地编辑器,缩进全乱、换行符丢失、特殊字符变问号——这是移动端开发者和学习者的高频痛点。根源在于手机浏览器剪贴板对富文本和纯文本的转换逻辑不统一,复制时丢失了代码的缩进层级、空行和语法高亮元信息。AI…

2026/8/26 17:35:08 阅读更多 →
玉柴 1800kW(PRP 主用功率)10.5kV 高压柴油发电机组核心特性

玉柴 1800kW(PRP 主用功率)10.5kV 高压柴油发电机组核心特性

基准配置:发动机 YC12VC2700L-D31 / YC16VC3000-D31;1800kW PRP/2250kVA,10.5kV 高压同步发电机,50Hz/1500rpm 一、动力本体(发动机)核心特性1. 结构硬件特点V 型 12 缸 / 16 缸四冲程、水冷、增压中冷、电…

2026/8/26 17:35:08 阅读更多 →
下界理论:差分隐私能有多好?

下界理论:差分隐私能有多好?

原文课程: Lecture 11 — Packing Lower Bounds (Gautam Kamath, CS 860, Fall 2020) 上几讲我们看到了各种 DP 算法,自然会问一个问题:我们能不能做得更好? 或者说,现在已经有的算法是否已经是最优的了? 答案是&…

2026/8/26 17:35:08 阅读更多 →
Windows 笔记本内屏变暗、亮度调不上去:一次显示器驱动枚举异常的排查修复

Windows 笔记本内屏变暗、亮度调不上去:一次显示器驱动枚举异常的排查修复

Windows 笔记本内屏变暗、亮度调不上去:一次显示器驱动枚举异常的排查修复 问题现象 这次遇到的问题是:笔记本内屏明显偏暗,看久了眼睛很不舒服。Windows 里的亮度已经调到最高,但实际显示效果仍然很暗,亮度调节基本不…

2026/8/26 17:35:08 阅读更多 →
Linux防火墙端口开启实战:从入门到精通

Linux防火墙端口开启实战:从入门到精通

Linux防火墙端口开启实战:从入门到精通告别端口不通的烦恼,一文掌握Linux防火墙核心操作作为一名全栈工程师,我深知端口问题带来的困扰。当你部署好了一个Web应用,却怎么也无法通过浏览器访问;当你配置好了一个数据库&…

2026/8/26 17:35:08 阅读更多 →
第06篇-工具系统

第06篇-工具系统

【OpenClaw 从入门到精通】第 6 篇:工具系统 — Agent 的能力边界 本系列定位:零基础入门,从安装配置到高级架构全覆盖。无论你是开发者、运维工程师、还是技术爱好者,本系列带你彻底掌握 OpenClaw。 本篇你将学到 OpenClaw 工具…

2026/8/26 17:34:07 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →