数据结构与算法
文章平均质量分 71
无
水w
长路漫漫,当克己,当慎独。
展开
-
【算法】妙不可言---贪心算法
贪心算法原创 2022-10-22 16:08:09 · 123 阅读 · 0 评论 -
【算法】妙不可言---贪心算法
【算法】妙不可言---贪心算法原创 2022-10-22 15:59:58 · 347 阅读 · 1 评论 -
【算法】妙不可言---算法复杂性
一、算法复杂性◼ 一棋盘粮有多少◼ 神奇的兔子数列原创 2022-10-22 15:57:45 · 294 阅读 · 0 评论 -
【算法】妙不可言---算法复杂性
一、算法复杂性◼ 一棋盘粮有多少◼ 神奇的兔子数列原创 2022-10-19 16:11:42 · 1439 阅读 · 2 评论 -
数据结构与算法之 算法:动态规划
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清...原创 2022-04-11 13:09:03 · 804 阅读 · 0 评论 -
数据结构与算法之 算法:贪心
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清...原创 2022-04-11 13:02:38 · 256 阅读 · 0 评论 -
数据结构与算法之 数据结构:AVL树
数据结构:数据元素的集合 + 数据元素之间的关系AVL树1、特点: 是一棵自平衡的二叉搜索树2、不平衡情况: 对P的右孩子的右子树C插入---->左旋 对P的左孩子的左子树C插入---->右旋 对P的右孩子的左子树C插入---->从中间升上去 对P的左孩子的右子树C插入---->从中间升上去from bst import BiTreeNode, BSTclass AVLNode(BiTreeNode): ...原创 2022-04-11 12:55:28 · 322 阅读 · 0 评论 -
数据结构与算法之 数据结构: 二叉树、二叉搜索树
数据结构:数据元素的集合 + 数据元素之间的关系二叉树:1、特点: 链式存储2、4种遍历:先序遍历中序遍历后序遍历层次遍历from collections import dequeclass BiTreeNode: """二叉树""" def __init__(self, data): """节点""" self.data = data sel...原创 2022-04-11 12:22:40 · 107 阅读 · 0 评论 -
数据结构与算法之 数据结构:哈希表
数据结构:数据元素的集合 + 数据元素之间的关系哈希表通过哈希函数来计算数据存储位置:直接寻址表 + 哈希1、哈希冲突两个不同元素映射到同一个位置上解决方法: 开放寻址法 拉链法2、补充:直接寻址表缺点: 当域很大时,需要消耗大量内存,很不实际 如果域很大而实际出现的key很少,则大量空间被浪费 无法处理关键字不是数字的情况3、常见的哈希函数:4、应用:md5、SHA2class...原创 2022-04-11 12:03:58 · 258 阅读 · 0 评论 -
数据结构与算法之 数据结构:列表、栈、队列、链表
数据结构:数据元素的集合 + 数据元素之间的关系列表1、特点: 顺序存储 插入和删除 O(n)2、与数组的区别: 数组的元素类型相同,数组长度固定栈1、特点: 一个数据集合,后进先出 使用一般的列表结构可以实现栈2、应用:括号匹配问题 思路:左括号进栈,右括号则判断栈顶匹配时出栈class Stack: def __init__(self): self.stack = [] def...原创 2022-04-11 11:50:12 · 751 阅读 · 0 评论 -
数据结构与算法之 查找、排序
一、查找顺序查找时间复杂度:O(n)def linear_serach(li, val): for index, v in enumerate(li): if v == val: return index else: return None折半查找1、要求列表有序2、时间复杂度:O(logn)def binary_search(li,val): left = 0 right = len(li) -原创 2022-04-11 11:42:21 · 350 阅读 · 0 评论