自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 RSA算法推导

1.随机选择两个互质数,p和q,计算N=pq比如p=5, q=7,N=35(这里只是说明原理,实际会选择大的质数)2.根据欧拉函数,求r=(p-1)(q-1)r=(5-1)(7-1)=243.选择一个小于r的整数e,使e与r互质。并求得e关于r的模逆元,命名为d取e=5,求d,要求e*d%r = 1转化为公式ex - ry = 1求解x,ypackage maini...

2019-09-27 12:20:12 450

原创 Docker安装Mongodb

~# docker search mongo~# docker pull mongo:4.0~# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmongo 4.0 ...

2019-09-19 23:56:56 120

原创 node笔记(2)-TCP

Node.js采用单线程非阻塞事件轮询机制

2019-08-01 00:40:46 111

原创 node笔记(1)-环境介绍

参考node环境搭建在终端输入$ node -vv11.12.0然后用自己习惯的编辑器创建一个server.js,输入如下:var http = require('http')var server = http.createServer((req, res) => { res.writeHead(200, {'Content-type': 'text/html'}) r...

2019-07-29 20:28:23 95

原创 GCD(Grand Central Dispatch)

GCD属于系统级的线程管理,在Dispatch queue中执行任务,GCD中的FIFO队列称为dispatch queue,用来保证先进来的任务先得到执行。概要(1)和operation queue一样都是基于队列的并发编程API,通过集中管理协同工作的线程池。 (2)公开的5个不同优先级队列:运行于主线程的main queue,3个不同优先级(High Priority Queue,

2017-12-30 22:49:20 163

原创 Objective-C Runtime 运行时(4)

Objective-C中可以通过category给一个类添加方法扩充它,但不能添加实例变量。还可以通过@protocol定义接口,@protocol声明的方法后由其它类负责实现。 Category是一个指向分类结构体的指针,定义如下:typedef struct objc_category *Category;struct objc_category { char *category_n

2017-12-20 00:33:09 132

原创 Objective-C Runtime 运行时(3)

Method Swizzling:方法混淆,顾名思义将两个方法交换,即由A-AIMP,B-BIMP变成A-BIMP,B-AIMP。 方法混淆原理:每个类都有一个方法(Method)列表,Method包含SEL和IMP的对应关系,方法交换就是将SEL和IMP的关系断开,并和新的IMP生成新的对应关系。 相关函数介绍//获取通过SEL获取一个方法class_getInstanceMethod//

2017-12-19 01:07:46 146

原创 Objective-C Runtime 运行时(2)

Runtime机制中最重要的特性是消息处理机制。先了解一下与方法相关的一些概念。SEL:又叫选择器,是一个方法的selector的指针,定义如下:typedef struct objc_selector *SEL;selector实际就是方法名,它是在编译时根据方法的方法名,参数序列生成一个标示符,这个标示符就是SEL。两个类不管是否存在继承关系,只要方法名相同,那么方法的SEL就是

2017-12-18 22:00:42 139

原创 知识总结Objective-C Runtime 运行时(1)

c语言不是动态语言,函数的调用在编译时候已经确定,编译完成后按照顺序执行即可。OC作为动态语言主要是因为Runtime库的支持,由于Runtime库的作用使得c语言具有了动态语言的特性,runtime保持在程序运行时创建,修改类,对象和方法,OC的函数调用通过runtime进行消息的转发。 Object-C类typedef struct objc_class *Class;struc

2017-12-16 00:41:16 221

原创 经典排序算法

1简单插入排序:void Insert_Sort(ElementType A[], int N) { for(P=1; P<N; P++) { Tmp = A[P];//摸下一张牌 for(i=P; i>0 && A[P-1]>Tmp; i--) { A[i] = A[i-1];//移出空位 } A[i]

2017-12-08 20:50:11 129

原创 最短路径问题

问题描述:在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径。 问题分类: 1单源最短路径问题:从某固定源出发求其到所有其他顶点的最短路径。 (1)无权图: 按照递增顺序找出到各个顶点的最短路径//使用邻接表存储 dist[]和path[]全部初始化为-1typedef struct GNode *PtrToGNode;typedef struct Vnode {

2017-12-06 01:18:32 529

原创

图是表示“多对多”的关系,包含一组定点和一组边,一组顶点通常用V(Vertex)表示顶点集合,一组边通常用E(Edge)表示边的集合。 边是顶点对:(v,w) 属于E,其中v,w属于V 有向边 < v,w > 表示从v指向w的边 1邻接矩阵表示法: 邻接矩阵G[N][N]-N个顶点从0到N-1编号 对于有权路径的图G[i][j] = 1表示 < vi, vj >有边,否则表示没边 对于稀疏

2017-12-04 18:07:48 101

原创 Huffman树

Huffman树的定义: 带权路径长度(WPL):设二叉树有n个叶子节点,每个叶子节点带有权值Wk,从根节点到每一个叶子节点的长度为Lk,则每个叶子节点的带权路径长度之和就是WPL=∑nk=1=WkLk\sum_{k=1}^n = WkLk 所以WPL最小的二叉树就是Huffman树或者最优二叉树。 Huffman树的特点: (1)没有度为1的节点 (2)n个叶子节点的Huffman树共

2017-12-03 01:02:08 331

原创 堆和优先队列

优先队列:特殊的队列,取出元素的顺序是依据元素的优先权大小,而不是元素进入队列的先后顺序。 堆的特性符合优先队列的要求: (1)结构性:用数组表示完全二叉树; (2)有序性:任一节点的关键字是其子树所有节点的最大值或者最小值。 1最大堆的插入typedef struct HNode *Heap;struct HNode { ElementType *Data;//存储元素的数组

2017-12-01 22:46:11 240

原创 AVL树的插入和删除

平衡二叉树定义:任一节点的左右子树高度差的绝对值不超过1。 定义BF为平衡因子,HL和HR分别为T的左右子树的高度,满足|BF|<=1。 节点数为n的平衡二叉树的最大高度为O(lgn)。 查找、插入和删除在平均和最坏情况下的时间复杂度都是 O(logn),增加和删除可能需要通过一次或多次树旋转来重新平衡这棵树。 在AVL树中插入一个节点的算法: (1)若树为空,插入元素作为AVL树的根节

2017-12-01 10:54:24 398

原创 二叉搜索树

1.二叉搜索树也称二叉排序树或者二叉查找树。一棵二叉树满足一下定义: (1)非空左子树的所有键值小于其根节点的键值。 (2)非空右子树的所有键值大于其根节点的键值。 (3)左右子树都是二叉搜索树。 2.二叉搜索树的查找操作:Find (1)若X小于根节点键值,只需在左子树中继续查找。 (2)若X大于根节点键值,在右子树中继续查找。 (3)若两者比较结果相等,返回此节点。 //非递归查找

2017-11-30 00:09:11 138

原创 数据结构-二叉树

二叉树是一种树形结构,其特点是每个节点最多有两棵子树,并且子树有左右之分,次序不能随意颠倒。1二叉树的存储结构1.1顺序存储结构 完全二叉树:按从上到下,从左往右的顺序存储,n个节点的完全二叉树的节点父子关系: 非根结点(序号 i > 1)的父结点的序号是 i / 2; 结点(序号为i)的左孩子结点的序号是 2i, (若2 i <= n,否则没有左孩子); 结

2017-11-28 23:29:55 260

原创 栈和队列的应用

利用栈和队列实现表达式求值表达式求值和一元多项式加法运算

2017-11-22 22:33:30 1504

原创 数据结构-栈和队列

数据结构-栈和队列栈和队列都是动态集合,且在其上进行删除操作所移除的元素都是预先设定的。在栈中被删除的是最新插入的元素,栈实现的是一种后进先出的策略。队列实现的是一种先进先出的策略。栈和队列的实现方式主要有顺序存储和链式存储方式。

2017-11-20 20:57:04 211

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除