![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法相关
intimexy
这个作者很懒,什么都没留下…
展开
-
MD5加密算法原理及实现
全称:message-digest algorithm 5 翻译过来就是:信息 摘要 算法 5 1.特点 1.长度固定: 不管多长的字符串,加密后长度都是一样长 作用:方便平时信息的统计和管理 2.易计算: 字符串和文件加密的过程是容易的. 作用: 开发者很容易理解和做出加密工具 3.细微性 一个文件,不管多大,小到几k,大到几G,你只要改变里面某个字符,那么都会...转载 2020-11-24 16:32:12 · 4718 阅读 · 1 评论 -
堆排序算法(图解详细流程)
堆排序的时间复杂度O(N*logN),额外空间复杂度O(1),是一个不稳定性的排序 目录 一 准备知识 1.1 大根堆和小根堆 二 堆排序基本步骤 2.1 构造堆 2.2 固定最大值再构造堆 三 总结 四 代码 一 准备知识 堆的结构可以分为大根堆和小根堆,是一个完全二叉树,而堆排序是根据堆的这种数据结构设计的一种排序,下面先来看看什么是大根堆和...转载 2020-11-24 16:21:30 · 10158 阅读 · 3 评论 -
O(n)复杂度的排序算法
介绍了前面的很多排序算法后,也许你会问是否有一种O(n)复杂度的排序算法呢!答案当然是有的。但是和我们之前看到的算法不一样。前面的算法不管是插入排序,归并排序,还是快速排序,以及堆排序也好,它们都需要比较元素的大小。在导论上有证明了只要是比较排序算法,它的时间复杂度下界是O(nlogn)(当然也存在特例,比如桶排序)。也就是说要想达到O(n)的复杂度,我们必须在不进行比较大小的情况下,将元素排好序。下...转载 2020-11-23 18:35:04 · 1193 阅读 · 1 评论 -
java实现Dijkstra算法
1 问题描述 何为Dijkstra算法?Dijkstra算法功能:给出加权连通图中一个顶点,称之为起点,找出起点到其它所有顶点之间的最短距离。 Dijkstra算法思想:采用贪心法思想,进行n-1次查找(PS:n为加权连通图的顶点总个数,除去起点,则剩下n-1个顶点),第一次进行查找,找出距离起点最近的一个顶点,标记为已遍历;下一次进行查找时,从未被遍历中的顶点寻找距离起点最近的一个顶点, 标记为已遍历;直到n-1次查找完毕,结束查找,返回最终结果。 2 解决方案 2.1 使用Dijkstra算法得到转载 2020-11-21 19:10:18 · 180 阅读 · 0 评论 -
时间复杂度与常见复杂度的讨论
前言 算法的效率 虽然计算机能快速的完成运算处理,但实际上,它也需要根据输入数据的大小和算法效率来消耗一定的处理器资源。要想编写出能高效运行的程序,我们就需要考虑到算法的效率。 算法的效率主要由以下两个复杂度来评估:时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使用程度。空间复杂度:评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。 设计算法时,一般是要先考虑系统环境,然后权衡时...转载 2020-10-11 18:15:11 · 1893 阅读 · 0 评论