反转链表-图文 反转链表-图文第一步:定义三个链表指针pre、cur、next分别代表前一个、当前、下一个。第二步:首先将next赋值为cur->next指向下一个;然后将cur->next赋值为p进行反转;之后将p=cur为下一次循环的前一个;最后将cur=next第一个节点反转完成。第三步:循环执行第二步,直达cur到达最后变为null。...
Ubuntu安装Android ndk Ubuntu安装Android ndk一、下载Linux版ndkhttps://developer.android.google.cn/ndk/downloads二、解压 sudo apt install unzip unzip android-ndk-r21d-linux-x86_64.zip三、添加环境变量 sudo gedit /etc/profile export NDK_HOME=/home/cc/android-ndk-r21d...
Windows下Android开发环境搭建 Windows下Android开发环境搭建一、下载jdk二、下载Android studio三、配置host http://ping.chinaz.com/dl.google.com查看ip配置host
最小生成树 一、定义给定一个无向图,如果他的某个子图中,任意两个顶点都能互相连通并且是一棵树,那么这棵树就叫做生成树,如果边上有权值,那么使得边权和最小的生成树叫做最小生成树。实际问题:我们要在n个城市中建立一个通信网络,则连通这n个城市需要布置n-1一条通信线路,这个时候我们需要考虑如何在成本最低的情况下建立这个通信网?二、普里姆算法—Prim算法(适合稠密图)用堆优化后时间复杂度...
算法导论--最小生成树(Kruskal和Prim算法) 转载 勿在浮沙筑高台http://blog.csdn.net/luoshixian099/article/details/51908175关于图的几个概念定义:连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。连通网:在连通图中,若图的边具有一定的意义,每一...
哈希详解 Hash(哈希)Hash :散列,通过关于键值(key)的函数,将数据映射到内存存储中一个位置来访问。这个过程叫做Hash,这个映射函数称做散列函数,存放记录的数组称做散列表(Hash Table),又叫哈希表。JAVA函数hashCode()即请求对象的哈希值。Hash的优点先分类再查找,通过计算缩小范围,加快查找速度。例:集合:{13,19,25,27,17}若是采用数...
HTTPS由来(对称加密、非对称加密、公钥、私钥、数字签名、数字证书) 1.对称数据加密就像上图所示, 这加密和解密算法是公开的,那个密钥是保密的, 只有两人才知道, 这样生成的加密消息(密文) 别人就无法得知了。这叫对称加密算法,因为加密和解密用的是同一个密钥。问题来了,这个密钥的双方必须得知道,但是通过网络发送又不安全,这该怎么办呢?这时候就出现了非对称数据加密。2.RSA:非对称加密这个RSA算法非常有意思,它不是像之前的算法, 双方必须...
通过双向证书认证使用 gSOAP 访问 web services 概述本文通过一系列的实验步骤描述,向您展示如何使用 gSOAP 编写的客户端,通过双向证书认证,访问由 tomcat7 和 Axis2 搭建的 web 服务。全文循序渐进,分为几个阶段逐步展开,每个阶段相关的注意事项和遇到过的一些问题也一并记录下来供读者参考。先简单介绍一下需要准备的工具。服务端:由 tomcat7+axis2 搭建而成 客户端:由 gSOAP 工具生成 证书 :用...
OpenSSL编译 1、下载安装编译必须的ActivePerl:http://www.activestate.com/activeperl/downloads2、进入VS2015命令行perl Configure debug-VC-WIN32 no-asm --prefix="D:\APICenter\OSG\3rdparty\openssl-1.0.2l\build"ms\do_nasm...
设计模式 创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例)结构型6. Adapter Class/Object(适配器)7. Bridge(桥接)8. Composite(组合)9. Decorator(装饰)10. Facade(外...
快速排序算法 快速排序算法是冒泡排序的一种改进,快速排序也是通过逐渐消除待排序的无序序列中逆序元素来实现排序的算法思想:(1)我们从待排序的记录序列中选取一个记录(通常第一个)作为基准元素(称为key)key=arr[left],然后设置两个变量,left指向数列的最左部,right指向数据的最右部。 (2)key首先与arr[right]进行比较,如果arr[right...
OpenGL 今天从零开始,连续写关于在Windows下用VS2015开发学习OpenGL的过程,实战记录!!手把手实战指导,每一步都是图文并茂详解,不怕你学不会,就怕你不想动!第一步:首先你要下载并安装VS2015版本。今后的相关连载文章或源码,都会以这个版本展开。VS2015的具体下载和安装,这里就不讲了,网上搜一下应该很多。第二步:准备好OpenGL的相关库,主要有两个GLFW和GLA...
Git使用教程,最详细,最傻瓜,最浅显,真正手把手教 预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么?Git是目前世界上最先进的分布式版本控制系统。工作原理 / 流程:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库二:SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,...
ATL 之ActiveX控件 1、ActiveX插件的制作环境:vs2010,cert2spc.exe,makecert.exe,signtool.exe,signcode.exe,cabarc.exe1.1:创建ATL Project创建时只需要各项默认,点击finish1.2:添加实现插件功能的类右键项目——添加类——ATL——ALT控件,直接点击Add1.3:填入参数...
最短路径 Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,比如数据结构、图论、运筹学等。 1、算法思想...
B树 注意:首先需要说明的一点是:B-树就是B树,没有所谓的B减树维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。与自平衡二叉查找树不同,B-树为系统最优化大块数据的读和写操作。B-tree算法...
c++开源库 值得学习的C语言开源项目- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz...
关键路径 原理:例图如上图,是一个AOE网,点表示状态,边表示活动及其所需要的时间。为了求出关键路径,我们使用一下算法:1.求出到达各个状态的最早时间(按最大计)这个过程是要从源点开始向汇点顺推:V1是源点,其最早开始时间是0。 V2、V3、V4最早时间分别是是6、4、5。 对于V5而言,V2到V5所花费时间是6+1=7,而V3到V5所花费时间是4+1=5。我们要按最大计,...
拓扑排序 定义:把AOV网(用定点表示活动,用弧表示活动间优先关系的有向图)络中各个顶点按照它们互相之间的优先关系排列成一个线性序列的过程叫做拓扑排序。方法: 在有向图中选一个没有前驱的顶点并且输出 从图中删除该顶点和所有以它为尾的弧,即删除所有与它有关的边。 重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止。例题:首先我们找到无前驱顶点C1和...
十大经典排序算法 十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相...