数据结构与算法
Xavier学长
这个作者很懒,什么都没留下…
展开
-
单链表结构与顺序存储结构优缺点
简单地对单链裴结构和顺序存储结构做对比: 通过上面的对比,我们可以得出一些经验性的结论:• 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜采用单链裴结构。比如说游戏开发中,对于用户注册的个人信息,除了注册时插入数据外,绝大多数情况都是读取,所以应该考虑用顺序存储结构 。而游戏中的玩家的武器或者装备列表,随着玩家的游戏过程中,可能会随时增加或删除,此时...原创 2018-06-23 19:33:27 · 1001 阅读 · 0 评论 -
算法面试40讲2
五、理论讲解:数组和链表数组:1、访问:O(1)2、插入和删除:时间复杂度:0(n)链表插入和删除是o(1)查找是o(n)的六:反转一个单链表和判断链表是否有坏1、反转链表:2、反转相邻的解释:1、作者是想把 self 当做链表的头指针使用的(注意:头指针 pHead 与传入的参数 head 是不同的,head 是第一个...原创 2019-02-28 22:08:01 · 223 阅读 · 0 评论 -
python 数据结构与算法——树的概念、二叉树的概念
一、树的概念B的节点的度为3,G的节点的度为2树的度为3K、J、F、L、O、P 为叶节点E的父节点为BD、E、F为兄弟节点A为第一层,B,C为第二层,以此类推树的深度是5D和H为堂兄弟节点A、C、G、M都是O节点的祖先G的子孙是L、M、O完全二叉树满二叉树排序二叉树顺序存储用的不多!!!!二、二叉树的概...原创 2019-02-25 22:06:18 · 258 阅读 · 0 评论 -
python 数据结构与算法——树的遍历
1、广度优先遍历 2、深度优先遍历先序遍历:把根放在最前面中序遍历:把根放在中间后序遍历:把根放在后面# -*- coding: utf-8 -*-"""Created on Mon Feb 25 21:47:53 2019树的添加@author: Xavier"""class Node(object): def __init__(self...原创 2019-02-26 21:59:52 · 1079 阅读 · 0 评论 -
算法面试40讲
一、合格程序员第一步:算法1、编程的内功修炼2、去国内一流互联网公司的必要条件3、硅谷互联网公司面试要求当场写算法题目 1、电话面试 2、手撕代码4、算法与数据结构是有趣且实用的区块链:链表+树二、如何事半功倍的学习算法与数据结构书:OUTLIERS+三个方法切碎知识点(知识体系分成一个个小块,庖丁解牛的感觉)+刻意练习+反馈...原创 2019-02-27 15:26:54 · 851 阅读 · 0 评论 -
算法面试40讲3
初学者应该了解的数据结构:Array、HashMap 与 Listhttps://juejin.im/post/5b3731b36fb9a00e5326f087十三、哈希表映射(MAP)和集合(set)哈希函数和哈希表在数组中查找元素的时间复杂度是O(n)参考:https://juejin.im/post/5b3731b36fb9a00e5326f087对于哈...原创 2019-03-16 15:26:03 · 194 阅读 · 0 评论 -
算法面试40讲4
24、贪心算法只适用于是倍数的情况,当面值是10,9,1的时候,组成18,贪心就不试用(10+8*1与9*2)25、买卖股票的最佳时机搜索+贪心+动态规划下面这个是贪心算法的代码。其他两种还在学class Solution: def maxProfit(self, prices: List[int]) -> int: profit...原创 2019-04-03 17:34:26 · 493 阅读 · 0 评论 -
算法面试40讲5
31 剪枝是在搜索中必用的优化手段先回顾一下搜索:(BFS、DFS)AlphaGo没有模板,要具体问题具体分析32 N皇后问题class Solution: def solveNQueens(self, n: int) -> List[List[str]]: #代码的规范 if n<1: ...原创 2019-05-26 10:43:13 · 159 阅读 · 0 评论 -
算法面试40讲6
经验:当输入值很大的时候,用动态规划,很小的时候,用递归43、动态规划-常考(逻辑思维和动态规划的内功要求)动态递推44 动态规划(下)45 爬楼梯思路1:回溯(递归)从顶端开始考虑#动态规划class Solution(object): def climbStairs(self, ...原创 2019-05-29 20:59:51 · 220 阅读 · 0 评论 -
拓扑排序(总结)
1、定义:对一个有向无环图G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序的序列,简称拓扑序列。2、条件:每个顶点出现且只出现一次 若A在序列中排在B的前面,则在图中不存在从B到A的路径3、特性:拓扑排序并不唯一 有向无环图一定存在拓扑排序使用的算法也...原创 2019-07-31 22:41:35 · 1083 阅读 · 0 评论 -
python数据结构与算法-选择排序算法的实现
1、从小到大排序:将最小值放在前面,找到其余的数据的最小值【即:始终从后面未排序的序列中,选出最小的,放到前面去】(将最大值放在后面。找到其余数据的最大值) ...原创 2018-12-18 20:21:14 · 176 阅读 · 0 评论 -
python数据结构与算法-排序算法的稳定性+冒泡排序
一、排序算法的稳定性数据结构:顺序表、链表、栈和队列已经讲完了现在到排序与搜索二、冒泡排序 当是从小到大排序的时候,每次把最大的放在最后面,相当于有一个东西向外面冒。时间复杂度: # -*- coding: utf-8 -*-"""Created on Tue Dec 18 14:40:56 2018@author: Xavie...原创 2018-12-18 15:42:58 · 259 阅读 · 0 评论 -
静态链表的理解
提出将数组的元素都是由两个数据域组成,data 和 cur。也就是说,数组的每个下标都对应一个 data 和一个 cur。 数据域data ,用来存放数据元素, 也就是通常我们要处理的数据;而游标 cur 相当于单链表中的 next 指针,存放该元素的后继在数组中的下标。 把这种用数组描述的链表叫做静态链表,这种描述方法还叫做游标实现法。 为了我们方...原创 2018-06-23 21:52:17 · 4006 阅读 · 2 评论 -
python 数据结构与算法-单链表与顺序表的对比
时间复杂度原创 2018-12-07 20:38:18 · 200 阅读 · 0 评论 -
python与数据结构-单链表
https://www.bilibili.com/video/av21540971/?p=101、python 中变量标识的本质python 中等号的本质就是一个"引用链接”(变量皆指针),【与c和c++不一样,c、c++是&表示地址,指针】2、3、遍历链表(cur-游标(指针))4、头插法(在链表头部插上新的元素)5、pre=self.__head指的...原创 2018-12-04 20:27:37 · 458 阅读 · 0 评论 -
python数据结构与算法-单向循环链表
单向循环列表与单链表的区别是:让原有单链表的尾节点的指针区指向头结点单向循环链表的初始构造: class SingleLinkList(object): #单向循环链表 def __init__(self,node=None): self.__head = node if node: ...原创 2018-12-09 14:00:33 · 205 阅读 · 0 评论 -
python 数据结构与算法-栈与队列的基本概念
不用关心物理上面是如何存放的,关心该数据结构支持什么样的操作1、后进先出:关注支持的操作顺序表与链表解决的是数据存放的问题,都可以实现栈栈和线性表的一个区别就在于:栈这种数据结构描述的是操作,线性表描述的是数据怎么存放 2、队列 先进先出可以用顺序表与链表来实现 总结:顺序表与链表解决存储,但在具体场合需要关注这些容器的特性 ...原创 2018-12-11 15:21:13 · 183 阅读 · 0 评论 -
python 数据结构与算法-栈的实现
#可以用顺序表也可以用链表来写,在python 当中列表就是顺序表 code# -*- coding: utf-8 -*-"""Created on Tue Dec 11 15:54:54 2018@author: Xavier栈的实现代码使用顺序表来实现的,python中的list"""class Stack(object): def __init_...原创 2018-12-11 16:39:10 · 180 阅读 · 1 评论 -
python 数据结构与算法--双向链表
1、2、双向链表:前插法:与单链表不一样的,代码是: def add(self,item): #链表头部添加元素 "头插法" node=Node(item) node.next=self.__head self.__head=node node.next.prev=node #与单链表不...原创 2018-12-11 14:54:36 · 261 阅读 · 0 评论 -
python数据结构与算法-线性表
线性表:包括顺序表与链表顺序表:原创 2018-12-11 15:00:45 · 281 阅读 · 0 评论 -
python 数据结构与算法-队列的实现与双端队列
1、队列的实现code:# -*- coding: utf-8 -*-"""Created on Tue Dec 11 16:45:47 2018@author: Xavier"""class Queue(object): #取的那一端是队头,插入的那一端是队尾 #队列 def __init__(self): #构造函数胡...原创 2018-12-11 18:33:43 · 191 阅读 · 0 评论 -
深度优先与广度优先
参考:https://blog.csdn.net/u010025211/article/details/46844537原创 2019-08-01 10:55:25 · 160 阅读 · 0 评论