数据结构与算法
普通网友
这个作者很懒,什么都没留下…
展开
-
对称加密,单向加密,公钥加密
一、对称加密:数据发送和接收方用同一个秘钥同一个转换算法,不同方之间的秘钥不同(缺点密码太多,不容易记)。 二、单向加密算法:提取发送数据的特征码,随数据发送,接收方根据特征码校验。特点:1.输入一样。输出必然一样。2.雪崩效应3.定长输出。4.不可逆,无法根据特征码还原数据。其中要对特征码加密。这其中密码的生成:双方协商生成秘钥,但不让其他人知道:秘钥交换。秘钥交换时用Diffie-原创 2016-01-19 13:23:06 · 15381 阅读 · 1 评论 -
二分法查找C++实现
#include <iostream>#include <vector>using namespace std;int binary_seacher(vector<int> &v, int target){ if (v.empty()) return -1; int index1 = 0, index2 = v.size() - 1, mid = 0; wh原创 2016-09-27 15:28:49 · 17738 阅读 · 0 评论 -
如何计算时间复杂度
一、概念时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数)比如:一般总运算次数表达式类似于这样:a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+fa ! =0时,时间复杂度就是O(2^n);a=0,bO(n^3);a,b=0,cO(n^2)依此类推eg:(1) for(i=1;i<=n;i++) //循环了n*n次,当然是O(n^2)转载 2016-09-26 16:43:49 · 14516 阅读 · 1 评论 -
哈夫曼树构造和编码方式
哈夫曼树构造方法: 编码方式如下,左0右1:原创 2016-09-06 12:08:30 · 16469 阅读 · 0 评论 -
中缀表达式转换成前缀表达式和后缀表达式
35,15,+,80,70,-,*,20,/ //后缀表达方式(((35+15)*(80-70))/20)=25 //中缀表达方式 /,*,+,35,15,-,80,70, 20 //前缀表达方式 人的思维方式很容易固定!正如习惯了10进制。就对2,3,4,8,16 等进制不知所措一样!人们习惯的运算方式是中缀表原创 2016-09-06 11:02:35 · 17428 阅读 · 4 评论 -
快速排序算法C++实现
快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及原创 2016-09-04 13:44:41 · 14387 阅读 · 2 评论 -
一步一图一代码,一定要让你真正彻底明白红黑树
原文:http://blog.csdn.net/chenhuajie123/article/details/11951777转载 2016-09-01 17:23:10 · 14504 阅读 · 0 评论 -
最小生成树之prim算法
边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。 最小生成树(MST):权值最小的生成树。 生成树和最小生成树的应用:要连通n个城市需要n-1条边线路。可以把边上的权值解释为线路的造价。则最小生成树表示使其造价最小的生成树。 构造网的最小生成树必须解决下面两个问题: 1、尽可能选取权值小的边,但不能构成回路;转载 2016-08-18 17:07:31 · 15092 阅读 · 0 评论 -
最小生成树之kruskal算法
最小生成树之kruskal算法1.kruskal算法假设连通网N=(V,{E})。则令最小生成树的初始状态为只有n个顶点而无边的非连通图T=(V,{}),图中每个顶点自成一个连通分量。在E中选择最小代价的边,若该边依附的顶点落在T中不同的连通分量中,则将该边加入到T中,否则舍去此边而选择下一条代价最小的边,依次类推,直到T中所有顶点都在同一连通分量上为止。示例如下:图中转载 2016-08-18 17:06:20 · 14283 阅读 · 0 评论 -
汉诺塔问题
1.汉诺塔问题:如果将n个盘子(由小到大)从a通过b,搬到c,搬运过程中不能出现小盘子在大盘子下面的情况。分析:这个一个递归问题。只要将n-1个盘子从a通过c(没有中间点肯定不行)搬到b,再将第n个盘子从a搬到c,最后将n-1个盘子从b通过a搬到c。代码:一。递归算法b2_hannoi.cpp#include//汉诺塔#include#include转载 2016-02-22 13:13:28 · 14583 阅读 · 0 评论 -
哈希结构的缺点
哈希表也有一些缺点:它是基于数组的,数组创建后难于扩展,某些哈希表被基本填满时,性能下降得非常严重,所以程序虽必须要清楚表中将要存储多少数据(或者准备好定期地把数据转移到更大的哈希表中,这是个费时的过程)。而且,也没有一种简便的方法可以以任何一种顺序〔例如从小到大〕遍历表中数据项。如果需要这种能力,就只能选择其他数据结构。原创 2016-10-02 01:08:42 · 16704 阅读 · 0 评论