cn+dt

1.0非持久连接

每个网页元素对象的传输都需要单独建立一个tcp连接。也就是说,请求一个万维网文档所需的时间是该文档的传输时间加上两个rtt往返时间,一个用于tcp连接,另一个用于请求和接收文档的时间。

http请求报文中常用的几个方法:

get:请求读取由url所标志的信息

post;给服务器添加信息

head:读取url的首部

connect:用于代理服务器

html是超文本标记语言

http和https区别

  1. 安全性不同:HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  2. 网站申请流程不同:使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  3. 默认端口不同:http使用80,https使用443
  4. 对搜索排名的提升

http特点:

无状态的:同一个客户第二次访问同一个服务器上的页面时,服务器的相应与第一次访问时的状态相同;

http的无状态特性简化了服务器的设计,是服务器更容易支持大量并发的http请求;

http采用tcp作为运输层的协议,保证了数据的可靠传输

http既可以使用非持续连接,也可以使用持久连接

https特点:

  1. 要比 HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性
  2. https引入公钥私钥机制

https的公钥私钥

假设两个人a和b。a拥有一对钥匙,公钥和私钥。a将自己的公钥给b。当b想给a写信时,b用a给的公钥进行信件加密,然后发给a。a收到信件,用自己的私钥解密b发来的信件。当a想要给b回信时,将信件用hash函数形成摘要,然后用自己的私钥加密,发给b,b用公钥解开,再使用hash函数,生成摘要进行比对,若相同则在传输过程中没有被篡改。同时,为了防止b拿到的确实是a的公钥,a可以将自己的公钥和其他信息在证书中心做认证,证书中心用它的私钥加密,生成一个数字证书。这样,当a给b发信件的时候,可以附上数字证书,这样当b拿到信件时,可以用ca的公钥解开数字证书,得到a的公钥。

.:

堆区和战区

.:

堆区存什么数据

.:

战区存什么数据

https://blog.csdn.net/weixin_44684139/article/details/104204569

dt

算法的特性:有穷性,确定性,输入,输出,可行性

顺序表和链表的比较:

主要从以下两方面考虑:空间方面的比较和时间方面的比较。

从空间方面看:第一:存储分配方式,顺序表的存储空间是一次性分配,链表的存储空间是多次分配;第二:再存储密度上,顺序表的存储密度为1,链表则小于1,因为节点中有指针域;

在时间方面看:第一,从存储方式上,顺序表可以随机存取,也可以顺序存取;但是链表只能顺序存取;第二,从插入/删除时移动元素的个数上看:顺序表品骏需要移动近一半的元素,链表不需要移动元素,只需要修改指针。

时间复杂度,直接插入,折半插入,希尔排序,简单选择排序,堆排序,冒泡排序,快速排序,二路归并排序思想。

插入排序:每次将一个待排序的记录按关键字大小插入到前面已排好序的子序列中,指导全部记录插入完成。

折半插入排序:将一个待排序的记录按关键字大小插入到已排好序的子序列中,在查找插入位置时使用折半查找;

希尔排序:先将待排序表按间隔分割成若干子表,然后在各个子表中进行直接插入排序,然后缩小增量重复进行。增量一般取一半。

简单选择排序:排序n-1趟,每趟选择最小的元素和其最终位置交换,每趟确定一个最终位置。

堆排序:假如为大顶堆,首先构建初始堆, 每个堆的父节点大于子节点关键字。然后输出堆顶元素就是最大元素,接着将堆顶元素和最后一个元素交换位置,按照大顶堆的规则调整,调整完成后堆顶为该堆的最大元素,重复直到堆的元素只剩下一个。

冒泡排序:从后往前凉凉比较相邻元素,若为逆序则交换他们,指导比较完成。当其中某趟没有交换时表明交换完成。

快速排序:在排序表中人去一个元素作为枢轴,通过一趟排序将排序表划分为独立的两部分。前半部分值比枢轴小,后半部分值比枢轴大。然后再在两个表中再选取枢轴重复上诉步骤直到每个表的元素只有一个或者为空。

归并排序思想:将两个或者两个以上的有序表合成一个新表,进行两两合并。假设表a,b

判断图是否有环:

可以采用拓扑排序,深度优先遍历和并查集。

拓扑排序的思想:

对于无向图:首先,申请一个栈,将所有度《=1的节点入栈,然后,从栈中弹出元素,遍历所有与该节点相连的边的节点,将这些相邻节点的度减一,如果相邻节点的度变为1,则入栈。当栈为为空时,看所遍历的节点的个数是否等于图的顶点个数,若小于则有环,反之无环。

对于有向图,只需将入栈节点改为入度为0的节点入栈。其中栈可以用队列,数组来代替。

深度优先遍历判断环:

可以用非递归的深度优先遍历算法。当遍历到某个节点时,判断该节点是否在栈中,如果在栈中,则有环,否则五环。

数据库引擎类型:

有ISAM、MYISAM和HEAP,INNODB,innodb采用b+树

b树和b+树的优缺点

b树:1.树中每个节点至多m颗子树,最多含有m-1个关键字;

  1. 若根节点不是终端节点,则至少两颗子树;
  2. m阶的b树除了根节点外的所有非叶节点至少m/2向上取整颗子树,最少含有m/2向上取整-1个关键字

b+树:

  1. 每个分支节点最多m颗子树;
  2. 一个m阶的非叶根节点至少有两颗子树,其他每个分支节点至少有m/2向上取整个子树
  3. 叶子树的个数与关键字个数相等
  4. 叶节点中将关键字按大小顺序排列,将相邻的节点按大小顺序相互连接起来。
  5. 分支节点仅包含子节点中最大关键字以及指向子节点的指针。

b树和b+树的区别

b+树支持顺序查找

  1. b+树的叶节点包含信息,非叶节点仅起到索引作用,非叶节点中的每个索引项只含有对应字数的最大关键字和指向该字数的指针,不含有该关键字对应记录的存储地址。
  2. b+树的叶节点包含了全部关键字,在非叶节点中出现的关键字也会在叶节点中;而在b树中,叶节点包含的关键字和其他节点包含的关键字是不重复的。
  3. b+树中,具有n个关键字的节点只含有n个子树,即每个关键字对应一颗子树;在b树中,n个关键字的节点含有n+1颗子树;
  4. 在m阶的b+树中,每个节点的关键字个数范围是向上取整m/2到m,在b树中,关键字个数访问是向上取整m/2-1到m-1

B+树相比B树的优势:B+树的优势在于查找效率上
  1. 叶节点包含信息,非叶节点仅起到索引作用,整个树呈现矮胖形式,使得查询的IO次数更少;
  2.所有查询都要查找到叶子节点,查询性能稳定;
  3.所有叶子节点形成有序链表,便于范围查询。

散列表的建立和解决冲突的方法

常用的hash函数构造方法有:

  1. 开放定址法:主要进行一个线性变化
  2. 数字分析法:选取关键字的若干数位组成hash地址
  3. 平方取中发:一个数进行平方后取中间几位数
  4. 除留余数法:取模一个小于或者等于表长的最大素数。

解决冲突的方法;

分为开放地址法和链地址法

开放定址法包括线性探查法(容易出现堆积)和平方探查法(只能探查到一半单元)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haibianyoushark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值