基础算法,http,hash算法

基础算法

基础算法,http,hash算法

加密算法

对称加密

  • k 对数据加密,同时也可以使用key进行解密

    1. f ( k , d a t a ) = y f(k ,data) = y f(k,data)=y // 对数据data加密得到数据y
    2. f ( k , y ) = d a t a f(k, y) = data f(k,y)=data // 对数据y进行解密得到数据data

非对称加密

  • 私钥加密,公钥解密

    1. f ( s k , d a t a ) = y ‘ f(sk, data) = y` f(sk,data)=y
    2. $f(pk, y`) = data $
  • 公钥加密,私钥解密

    1. f ( p k , d a t a ) = y ‘ f(pk, data) = y` f(pk,data)=y
    2. f ( s k , y ‘ ) = d a t a f(sk, y`) = data f(sk,y)=data

HTTP

TCP链接 的几种状态

三次握手

客户端与服务端三次握手从解决网络信道不可靠的问题,同时保证服务端与客户端链接的一致性

client server init状态 Listen状态 发起第一次握手请求 发起SYN数据包 syn-send状态 第一次握手成功 发送 SYN+ACK包 确认建立 syn-rcvd状态 第二次握手成功 ACK数据包 第三次握手成功 握手成功进行 established 状态 client server 三次握手

为什么是三次握手不是两次握手?SYN+ACK 发送完成后就建立链接?

数据传输

创建发送缓存区

发送报文: 序列号+长度+数据内容

回复确认: ACK=序列号+长度 = 下一包的起始序列号

四次挥手

client server 链接确信状态 FIN指令 第一次挥手 ACK指令 第二次挥手 此时通道进入即将关闭状态, 不再接收新的请求将未处理完的请求处理完- 未完成的请求持续发送 未完成的请求持续发送 FIN指令 第三次挥手 ACK指令 第四次挥手 断开链接 进入等待超时状态 断开链接 client server 四次挥手

Http缓存

缓存状态码:

304: 未修改,自从上次请求之后,请求的网页未修改过,但是请求者应继续使用原有的位置来进行以后的请求。

301: 官方示意永久性移动,表示请求的网页永久移动到了新的位置

强制缓存

Cache-control: max-age: 1000

Cache-control: no-cache

协商缓存
  1. 浏览器发起请求
  2. 服务器返回协商标识
  3. 浏览器记录协商标识
  4. 再次发起请求,协带协商标识
  5. 服务端验证协商标识,
    1. 如果没有发生变化则返回304,
    2. 否则返回200 并返回响应体
1. Modify-cache
  • If-Modified-Since : Tue, 28 Sep 2021 08:18:21 GMT

  • Last-Modified: Tue, 28 Sep 2021 08:18:21 GMT

client server 发起资源请求 Last-Modified: Tue, 28 Sep 2021 08:18:21 GMT 响应资源请求 responseHeader 缓存Modified信息 协带Modified协商标识再次发起请求 发起资源请求 判断Last-Modified与If-Modified-Since是否一致? 响应304状态码 从浏览器获取缓存信息 响应200状态码 服务端返回响应数据 alt [一致] [不一致] loop [再次发起请求] client server 协商缓存
2. Etag-cache
  • If-None-Match: “6152cfcd-13dff”
  • ETag: W/“6152cfcd-13dff”
Link text
One
Two
服务端
f3
i3
浏览器
f1
i1
f2
Hard edge
Round edge
Decision
Result one
Result two

算法及数据结构

抽象数据类型定义的三要素

  • 类型名称
  • 数据对象集
  • 操作集

排序算法

  • 冒泡排序
  • 插入排序
  • 希尔排序
    • 先进行5间隔的排序,3间隔排序,间隔数不应该有相同的最大公约数 1,3,5,7,13
  • 选择排序
    • 堆排序

线性表

什么是队列?

队列:具有一定操作约束的线性表

  • 插入和删除操作:只能在一端插入,而在别一端删除
  • 循环线性表:首尾相链,size = n-1 ,
单向链表队列?

队首:front

队尾:rear

A,队首
B
C
D,队尾

Hash算法

有限的空间内对数据进行存放,Hash碰撞后的处理方式

什么是栈

栈的特性:选进后出

处理具有相关关系的数据,如javascript 函数执行也是使用栈的结构,进行先进后出处理

什么是推

放在一起且有优先级的数据,使用《完全二叉树》进行描述

从上到下,按照一定顺序排列(从上到下,从大到小)

4
5
6
7
8
9
10
这就是一个堆及它的应用
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ACM 算法模板集 Contents 一. 常用函数与STL 二. 重要公式与定理 1. Fibonacci Number 2. Lucas Number 3. Catalan Number 4. Stirling Number(Second Kind) 5. Bell Number 6. Stirling's Approximation 7. Sum of Reciprocal Approximation 8. Young Tableau 9. 整数划分 10. 错排公式 11. 三角形内切圆半径公式 12. 三角形外接圆半径公式 13. 圆內接四边形面积公式 14. 基础数论公式 三. 大数模板,字符读入 四. 数论算法 1. Greatest Common Divisor最大公约数 2. Prime素数判断 3. Sieve Prime素数筛法 4. Module Inverse模逆元 5. Extended Euclid扩展欧几里德算法 6. Modular Linear Equation模线性方程(同余方程) 7. Chinese Remainder Theorem中国余数定理(互素于非互素) 8. Euler Function欧拉函数 9. Farey总数 9. Farey序列构造 10. Miller_Rabbin素数测试,Pollard_rho因式分解 五. 图论算法 1. 最小生成树(Kruscal算法) 2. 最小生成树(Prim算法) 3. 单源最短路径(Bellman-ford算法) 4. 单源最短路径(Dijkstra算法) 5. 全源最短路径(Folyd算法) 6. 拓扑排序 7. 网络预流和最大流 8. 网络最小费用最大流 9. 网络最大流(高度标号预流推进) 10. 最大团 11. 二分图最大匹配(匈牙利算法) 12. 带权二分图最优匹配(KM算法) 13. 强连通分量(Kosaraju算法) 14. 强连通分量(Gabow算法) 15. 无向图割边割点和双连通分量 16. 最小树形图O(N^3) 17. 最小树形图O(VE) 六. 几何算法 1. 几何模板 2. 球面上两点最短距离 3. 三点求圆心坐标 4. 三角形几个重要的点 七. 专题讨论 1. 树状数组 2. 字典树 3. 后缀树 4. 线段树 5. 并查集 6. 二叉堆 7. 逆序数(归并排序) 8. 树状DP 9. 欧拉路 10. 八数码 11. 高斯消元法 12. 字符串匹配(KMP算法) 13. 全排列,全组合 14. 二维线段树 15. 稳定婚姻匹配 16. 后缀数组 17. 左偏树 18. 标准RMQ-ST 19. 度限制最小生成树 20. 最优比率生成树(0/1分数规划) 21. 最小花费置换 22. 区间K大数 23. LCA - RMQ-ST 24. LCA – Tarjan 25. 指数型母函数 26. 指数型母函数(大数据) 27. 单词前缀树(字典树+KMP) 28. FFT(大数乘法) 29. 二分图网络最大流最小割 30. 混合图欧拉回路 31. 无源汇上下界网络流 32. 二分图最小点权覆盖 33. 带约束的轨道计数(Burnside引理) 34. 三分法求函数波峰 35. 单词计数,矩阵乘法 36. 字符串和数值hash 37. 滚动队列,前向星表示法 38. 最小点基,最小权点基

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

从未、淡定

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

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

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

打赏作者

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

抵扣说明:

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

余额充值