数据结构与算法
文章平均质量分 57
面试常考的数据结构放慢的知识
宝藏女孩的成长日记
网安硕士在读,欢迎交流,愿不吝赐教!
展开
-
学习《数据结构》要爬的第一步梯子
小王开始专业课的复习一、数据结构是什么二、数据结构中基本概念和术语2.1数据结构的概念2.2按照不同功能划分逻辑结构2.3存储结构中重点顺序存储举例链式存储举例三、抽象数据类型的表示与实现3.1数据类型3.2抽象数据类型 (ADTs: AbstractData Types)3.3算法分析(重点)1. 时间复杂度2. 空间复杂度复习数据结构正式开始!一、数据结构是什么数据结构是介于数学、计算机软件与计算机硬件的一门核心课程。程序=算法+数据结构(N.沃斯提出)二、数据结构中基本概念和术语数据(da原创 2021-05-23 10:52:13 · 1302 阅读 · 13 评论 -
❤️震惊!人生苦短,我用python来玩田忌赛马❤️
一读标题笑死自己哈哈哈,最近猪哥(玩得敲好的彭友)找我帮忙解决他不会作业哈哈哈,他们公司自己出的笔试题哈哈哈,希望别被他们出题人看见哈哈哈,回想猪哥说的一句话,万一这就是以后你遇到的试题呢哈哈哈。突然发现自己已经小半年没玩Python了,一上手手都生了,还真是那就话,三天不摸手生了都。关于田忌赛马的拙见使用 python 函数实现田忌赛马要求一要求二要求三使用 python 函数实现田忌赛马要求一现在我们将田忌的马抽象为一个列表 [2,5,8],齐王的马抽象为另一个列表 [3,6,9],分别原创 2020-12-09 12:55:55 · 4463 阅读 · 20 评论 -
算法的时间复杂度(python版容易理解)+常用的时间复杂度、python代码--数据结构
目录一、算法时间复杂度的应用二、如何计算算法的时间复杂度举例说明三、常用的时间复杂度时间复杂度排序四、代码说明一、算法时间复杂度的应用在实际应用中,会根据要解决的问题写出几个相应的解决办法,但是我们要选择执行效率最高的算法,那么怎样评估算法的效率呢,这时候就要用到算法时间复杂度了二、如何计算算法的时间复杂度步骤:计算代码的时间频度时间频度T(n): 代码的运行次数将时间频度,化简为时间复杂度代码运行次数的数量级别—时间复杂度计算:时间复杂度 = 时间频度 (去掉:1.常数项 2.低阶原创 2020-08-08 21:57:16 · 5102 阅读 · 0 评论 -
递归算法(python),汉诺塔问题,斐波那契数列,一个简单的递归实例,用递归实现阶乘,用递归查看目录及文件
目录定义代码汉诺塔问题斐波那契数列一个简单的递归实例用递归实现阶乘用递归查看目录及文件定义是一个函数在执行过程中自己调用自己。代码汉诺塔问题#coding= utf-8# 定义一个函数,表示将a的n个盘子借助b搬到c abc表示三根柱子 Hanoi(移动数,开始柱,中转柱,目标柱)def Hanoi(n,a,b,c): # 如果只剩下一个盘子,直接将a上的盘子搬去c if n==1: print(a,"-->",c) retu原创 2020-07-31 22:00:18 · 540 阅读 · 0 评论 -
数据结构--队列、双端队列实际举例详解(Python代码)
目录一、队列1.1举例1.2代码1.3运行结果二、双端队列2.1举例2.2代码2.3运行结果一、队列一种特殊的线性表,特殊之处在于它只能在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。简而言之,就像排队一样,先进先出:FIFO(First In First Out)进行添加操作的端称为队尾,进行删除操作的端称为队头。1.1举例第一个就队头,第二个就是队尾,队头进行删除操作,队尾进行添加操作。比如说我们早上去买包子,人多了就得排队,买包子的人是从队尾开始排(添加),你原创 2020-07-25 19:55:56 · 719 阅读 · 0 评论 -
HTTP和HTTPS的主要区别(面试常考)——计算机网络
主要区别:HTTPS协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL/TLS加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。) Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。...原创 2020-06-04 17:53:20 · 810 阅读 · 1 评论 -
哈夫曼树(Huffman Tree)的介绍、画法、哈夫曼树的可视化显示(Python代码实现)
目录一、概念二、带权路径长度三、树的带权路径长度四、举例五、哈夫曼树画法举例举例理解5.1步骤5.2注意一、概念带权路径长度最短的二叉树,即最优二叉树。二、带权路径长度在一颗树中,叶子结点带有数值,这个数值叫做权值,权值与叶子结点到根节点层数的乘积=带权路径长度三、树的带权路径长度树中所有叶节点的带权路径长度之和四、举例树的带权路径长度计算:31+52=13五、哈夫曼树画法举例举例理解5.1步骤(1) 先准备一组数字,以5,7,5,8, 9,2, 3为例(2) 对这一组数字进原创 2020-06-01 21:17:46 · 9517 阅读 · 9 评论 -
Python二分查找/折半查找算法详解--(面试常考)
二分查找也称折半查找(Binary Search),这种搜索算法每一次比较都使搜索范围缩小一半,是一种效率较高的查找方法。概念 是一种在有序数组中查找某一特定元素的查询算法。搜索过程从数组的中间元素开始,如果中间元素与要查找的元素相等,则搜索过程结束;如果查找元素大于或小于中间元素,则在数组大于或小于中间元素的那一半中进行查找,而且跟开始一样从中间元素开始比较。重复以上过程,直到找到满足条件的元素,使查找成功,或直到数组为空为止,此时查找不成功。要求 必须采用顺序存储结构,且按关键字大小进行原创 2020-05-28 23:20:28 · 2192 阅读 · 0 评论 -
python插入排序算法详解-面试常考
原理插入排序即将数据从后向前比较,找到相应的位置进行插入,时间复杂度为O(n^2)。举例说明[3,4,6, 5, 9,7]第一次排序:在位置1上的元素4,可将前面的1个元素看为一个有序序列,4比前面的数大,位置不变[3,4,6, 5, 9,7]第二次排序:在位置2上的元素6,可将前面的2个元素看为一个有序序列,6比前面的数大,位置不变[3,4,6, 5, 9,7]第三次排序:在位置3上的元素5,可将前面的3个元素看为一个有序序列,5比前面的6小,将5插入到4和6之间[3,4,原创 2020-05-25 20:12:57 · 578 阅读 · 0 评论 -
选择排序算法python
选择排序定义:将一个序列分未排序数列和排序数列, 在未排序序列中找到最小或者最大元素,存放到排序序列的起始位置,再从剩余未排序元素中接着找最小或最大元素,然后放到已排序序列的末尾。代码#coding=utf-8#定义函数,array数组,order排序def select_order(array,order): se = len(array) for i in rang...原创 2020-05-01 10:00:30 · 453 阅读 · 1 评论 -
快速排序算法理解-python
目录快速排序定义举例代码快速排序定义定义一个基准值(通常是第一个),将大于基准值的放在右边,小于基准值的放在右边。举例以2 1 9 6 7进行排序:假设以2作为基准数,大的放右侧,小的放左侧2 1 9 6 71 2 9 6 7 第一次比较再以2后面的第一个数9作为基准数,因为9左侧的已经排好了1 2 9 6 71 2 6 9 7第一次排序1 2 6 7 9第二次排序代码def fast_sort(data): if len(data) >= 2: mi原创 2020-05-08 23:49:56 · 753 阅读 · 0 评论 -
冒泡排序详解--python
我没学冒泡排序之前眼中的冒泡排序是这个样子的哈哈哈但是它的定义和泡泡真的很像,从小到大,大泡泡在上面,冒泡排序中的大泡泡就是压轴出场的哈哈哈哈冒泡排序:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个2.最后一个一定是最大的(这个太明显了趴)举例:代码:#coding=utf-8#先定义一个列表,使用冒泡排序是这样的,如果第一个比第二个打就交换,例如下面paopao...原创 2020-04-29 13:17:46 · 730 阅读 · 0 评论