写这篇日志是拖了很久的事情,以前说要写些算法相关的文章给想学信息安全学(简称信安),密码学的同学提供些入门资料,毕竟这种知识教师上课也不会细讲太多(纯理论偏重),更不用说理解和应用了,说到RSA公钥(yue)算法的认识,我最早是在32个计算机中的重要算法中看到的,不过在后来自己查阅数学建模和算法导论 ...
分类:
编程语言 时间:
2019-09-13 22:15:35
阅读次数:
186
最近在看算法导论,一开始就讲了许多关于各种排序的问题,(原谅我之前只会STL模板库里的sort函数),正好oj上有一个简单排序题,如图: 题意就是将序列排序然后找第k个数就行了,先随便交一发过了之后我觉得我应该学一些别的算法,于是这两天看懂了归并算法然后进行了实现。 归并排序 其实质就是分治,首先考 ...
分类:
编程语言 时间:
2019-09-01 17:03:31
阅读次数:
106
链接:https://pan.baidu.com/s/1mkx8Af-YtopYXMQhEn-tSA提取码:yj61 ...
分类:
编程语言 时间:
2019-07-01 12:19:22
阅读次数:
208
特点 常用于确定无向图的连通分量(虽然DFS也可以做),求最小公共祖先(LCA) 朴素版并查集 路径压缩 为了减少树的高度,直接将查找路径上的结点连接到根上去,降低查找时间 按秩合并 秩表示结点高度的上界,(算法导论上说路径压缩不会改变每个结点的秩?没想通,难道是指的上界),将秩小的树指向秩大的树称 ...
分类:
其他好文 时间:
2019-06-04 17:39:43
阅读次数:
121
面试算法爱好者书籍/OJ推荐这个书单也基本适用于准备面试。一、教科书基本上一般的算法课本介绍的范围都不会超出算法导论和算法引论的范围。读完这两本书。其它的算法课本大致翻翻也就知道是什么货色了。1. 算法导论这本书的内容用三个字来总结,就是伟光正。基本上囊括了经常使用算法的方方面面,证明巨细无遗,十分 ...
分类:
编程语言 时间:
2019-06-02 15:59:15
阅读次数:
95
任何比较排序算法的时间复杂度的上限为O(NlogN), 不存在比o(nlgN)更少的比较排序算法。如果想要在时间复杂度上超过O(NlogN)的时间复杂度,肯定需要加入其它条件。计数排序就加入了限制条件,从而使时间复杂度为O(N). 计数排序的核心思想(来自算法导论):计数排序要求待排序的n个元素的大 ...
分类:
编程语言 时间:
2019-05-11 19:40:00
阅读次数:
200
原理:分块矩阵乘法,进行8次矩阵乘法,时间复杂度为 $\theta(n^3) = \theta(n^{\lg{8}}) $ , 改进后仅需要7次乘法, 时间复杂度为 $\theta(n^{\lg{7}})$ 具体推到见算法导论中利用主定理推导时间复杂度 ...
分类:
其他好文 时间:
2019-05-03 22:44:05
阅读次数:
212
凸包问题是算法中经典的题目了,最近算法课讲分治问题时提到了Convex Hull,算法导论的书上也花了篇幅讨论了Convex Hull的求解,主要是Graham方法。 为了能更好地理解分治和Graham这两种解法,我决定自己动手把代码写一遍。 然而,在写之前,我发现我大一学的用行列式求解由三个点围城 ...
分类:
编程语言 时间:
2019-03-26 01:20:41
阅读次数:
500
问题描述: 假设有几种硬币,如1,2,5,并且数量无限。请找出能够组成某个数目的找零所使用最少的硬币数。 问题分析: 用待找零的数值n,描述子结构/状态,记作sum[n],其值为所需的最小硬币数。 对于不同的硬币面值coin[0...T],有sum[k] = min0<=j<T{sum[k-coin ...
分类:
其他好文 时间:
2019-03-01 12:49:29
阅读次数:
218