03 2021 档案

数据机构与算法学习(七)- 队列
摘要:一、如何理解队列 可以想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进先出,这就是典型的队列。 栈只支持两个基本操作:入栈和出栈。队列和栈非常相似,支持的操作也很有限,基本的操作也是两个:入队,放一个数据到队列尾部;出队,从队列头取一个元素。所以队列和栈一样,也是一种操作受限的线性表 阅读全文

posted @ 2021-03-15 18:36 成长的皮球 阅读(24) 评论(0) 推荐(0) 编辑

数据机构与算法学习(六)- 栈
摘要:一、如何理解栈 举例说明一下,就是一摞叠在一起的盘子。我们平时放盘子的时候,都是从下往上一个一个放;取的时候,我们也是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出,这就是典型的“栈”结构。 栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。当某个数据集合只涉及在一端插 阅读全文

posted @ 2021-03-15 17:55 成长的皮球 阅读(10) 评论(0) 推荐(0) 编辑

数据机构与算法学习(五)- 数组VS链表
摘要:时间复杂度 数组 链表 插入、删除 O(n) O(1) 随机访问 O(1) O(n) 数组在实现上使用的是连续的内存空间,可以借助CPU的缓存机制,预读数组中的数据,所以访问效率更高。而连败哦在内存中不连续,所以对CPU缓存不友好,没办法预读。 数组的缺点是大小固定,一经声明就会占用整块连续内存空间 阅读全文

posted @ 2021-03-15 14:36 成长的皮球 阅读(14) 评论(0) 推荐(0) 编辑

数据机构与算法学习(四)- 链表
摘要:数组和链表是两个非常基础、非常常用的数据结构。 两者的区别:从底层的存储结构来看,数组需要一块连续的内存空间来存储,对内存的要求比较高。而链表恰恰相反,它并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块串联起来使用。 三种常见的链表结构:单链表、双链表和循环链表。 单链表 概念定义: 我 阅读全文

posted @ 2021-03-15 14:17 成长的皮球 阅读(31) 评论(0) 推荐(0) 编辑

DFS深度优先
摘要:visited = set() def dfs(node, visited): visited.add(node) #process current node here ... for next_node in node.children(): if not next_node in visited 阅读全文

posted @ 2021-03-03 21:38 成长的皮球 阅读(32) 评论(0) 推荐(0) 编辑

BFS广度优先
摘要:def BFS(graph, start,end): queue = [] queue.append(start) visited.add(start) while queue: node = queue.pop() visited.add(node) process(node) nodes = g 阅读全文

posted @ 2021-03-03 21:25 成长的皮球 阅读(23) 评论(0) 推荐(0) 编辑

分治模板
摘要:def divide_conquer(problem, param1, param2, ...) #recursion terminator if problem is None: print_result return #prepare data data = prepare_data(probl 阅读全文

posted @ 2021-03-02 22:23 成长的皮球 阅读(42) 评论(0) 推荐(0) 编辑

递归模板
摘要:def recursion(level, param1,param2, ...): #recursion terminator if level >MAX_LEVEL: print_result return #process logic in current level process_data( 阅读全文

posted @ 2021-03-02 22:09 成长的皮球 阅读(27) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示