算法与时间维度
文章平均质量分 88
数据结构衡量的是空间效率,算法衡量的是时间效率,这个专栏研究常见的算法和它们的时间复杂度。
xosg
这个作者很懒,什么都没留下…
展开
-
生成树算法终极解析!
许多老师讲一个新协议时,总会“强制性”地给你灌输它的各种规则,导致许多学生死记硬背之后任然一脸懵逼。我当初听stp时 也是遗留了很多问题:比如为什么这么设计;这种机制为什么不能这样改进;如果这么这么的话,会怎么怎么样。太多的不理解导致我的记忆效率大大降低。所以我 希望可以从一个协议的起源,开发的目地,设计师的想法(框架),分类分层地来叙述一种优秀的机制,并且提出它的局限性。 这是一个纯原创 2018-01-05 11:02:53 · 1870 阅读 · 0 评论 -
Web精彩实战之“智能迷宫”
JS精彩实战之 ———宝贵编程经验分享会——— hello大家好,这里是Web云课堂,之前的一年里我们经历了Html和CSS的系统攻城,此时的你们已经是做静态(动静结合)网页的高手了,本堂课的主讲师JimJin将带领大家进入成为Web安全专家的第4阶段第三小节:JavaScript的实战实验。本节课我将演示如何运用Web编程语言JS来制作一个完整的系原创 2017-05-04 10:30:20 · 717 阅读 · 0 评论 -
KMP算法完整教程!!
KMP算法完整教程全称: Knuth_Morris_PrattAlgorithm(KMP算法)类型: 高级检索算法功能: 字符串匹配查找提出者:原创 2017-05-04 10:28:40 · 650 阅读 · 0 评论 -
最小生成树的两大解法:Prim和Kruskal【完美教程】
2020年6月12日:本文是N多年前在Microsoft Word(还是iWork的pages我忘了)上写的,后来懒得转成HTML就以图片的形式发布到新浪博客,3年前搬家到CSDN后图片失效了,最近考古自己的老文章发现了这篇,朦胧印象中当时写的还挺认真的,虽然现在已经看不懂了,但还是把他重置出来纪念一下。...原创 2017-05-04 10:16:00 · 548 阅读 · 0 评论 -
GIF、JPEG 和 PNG的区别在哪…
GIF、JPEG 和 PNG 是三种最常见的图片格式。GIF:1987 年诞生,常用于网页动画,使用无损压缩,支持 256 种颜色(一般叫 8 bit 彩色),支持单一透明色; JPEG:1992 年出世,照片一般都用这个格式,有损压缩,24 bit 真彩色(224 = 17 万种颜色),不支持动画,不支持透明色; PNG:1996 年问世,无损压缩,最常见的使用格式是 256 索引色(...原创 2018-01-05 11:06:01 · 5069 阅读 · 1 评论 -
MongoDB+NodeJS 环境搭建小记
帮工作室部署了一个 MongoDB+Nodejs站点,简单记录一下吧一、软件准备1、安装 nodejs因为debian8 镜像源里面的 nodejs 包过旧,遂采用如下方式安装 1 2 curl -sL https://deb.nodesource.com/setup_5.x | bash # 使用这个脚本进行自动安装,其实...原创 2017-09-16 14:27:19 · 2000 阅读 · 0 评论 -
正则表达式与RegExp
对正则表达式,我们并不陌生。在很多地方都会用到,尤其是字符串处理,正则表达式更是一把利器。本文通过一个例子来学习总结一下正则表达式的一些知识内容原创 2017-09-16 14:28:52 · 872 阅读 · 0 评论 -
2019春招前端面试预测题!
使用css实现一个持续的动画效果 12345 animation:mymove 5s infinite;@keyframes mymove {from {top:0px;}to {top:200px;}} 主要考:animation 用法值 描述 animation-name 规定需要绑定到选择器的 keyfr...原创 2018-11-08 13:23:48 · 3298 阅读 · 1 评论 -
让浏览器下载文件http头部
网站提供下载服务时经常需要实现一个强制下载功能(即强制弹出下载对话框),并且文件名保持和用户之前上传时相同。 效果如下图: Content-Disposition使用 HTTP Header 的 Content-Disposition: attachment 可以实现下载时强制弹出下载对话框。由于HTTP协议规定,通信内容使用US ASCII编码,就是只能使用英文字符集。若要使用其他字...原创 2018-07-25 16:43:53 · 8053 阅读 · 0 评论 -
Mac下修改应用程序的菜单快捷键!
点击左上角苹果按钮,系统偏好设置 > 键盘 > 快捷键 > 应用快捷键 点击右下角添加按钮,选择chrome程序,输入菜单中文名以及快捷键1、如何用F5刷新 鼠标悬停在左上角的刷新按钮,看到正式名称是“重新加载此页”,PS.不同版本可能会有差异,按前面步骤添加到操作系统键盘快捷键偏好设置里。2、如何用F12打开开发者工具 菜单 > 更多工具 看...原创 2018-06-02 13:19:38 · 6254 阅读 · 0 评论 -
关闭MongoDB服务的几种方法
MongoDB 提供几种关闭服务的命令,具体为以下:一 使用 Crtl+C 关闭 [mongo@redhatB data]$ mongod --dbpath=/database/mongodb/data/ --logpath=/var/applog/mongo_log/mongo.log --logappend --port=27017 --journal > start_mongo.lo...原创 2018-06-08 10:16:43 · 42302 阅读 · 1 评论 -
[java多线程 ]sleep()和wait()的区别
接触了一些多线程的东西,还是从java入手吧。 相信看这篇文章的朋友都已经知道进程和线程的区别,也都知道了为什么要使用多线程了。 这两个方法主要来源是,sleep用于线程控制,而wait用于线程间的通信,与wait配套的方法还有notify和notifyAll. 区别一:sleep是Thread类的方法,是线程用来 控制自身流程的,比如有一个原创 2018-01-04 17:02:40 · 616 阅读 · 0 评论 -
[复习] JAVA 遍历目录 (递归调用和非递归)
JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)1.不使用递归的方法调用.public void traverseFolder1(String path) { int fileNum = 0, folderNum = 0; File file = new File(path); if (file.exists()) {原创 2018-01-02 18:38:58 · 579 阅读 · 0 评论 -
睡眠排序、面条排序、猴子排序...........................
内容整编自多个网友的文章,外加上自己的一些感想,链接太多就不一一列举了:)1. 睡眠排序(Sleep Sort)睡眠排序也称为硬件排序, 充分利用硬件计时器的资源实现拟态算法(逃这个事件起源于一个屌丝发表了一个时间复杂度为O(n)的排序算法,睡眠排序的主要逻辑是构造n个线程,它们和这n个数一一对应。初始化后,线程们开始睡眠,等到对应的那么多个时间单位后各自醒来,然后输出对应的数。这...原创 2018-11-23 16:41:33 · 5230 阅读 · 9 评论 -
什么是高斯模糊算法?
通常,图像处理软件将提供模糊滤镜以使图像模糊。有许多算法可以实现模糊,其中一种称为高斯模糊算法。它利用高斯分布来处理图像。本文是介绍高斯模糊算法,你会发现这是一个简单的算法。实际上,它是一种可以在许多情况下使用的数据平滑。1.高斯模糊理论所谓的模糊可以理解为将像素作为其周围像素的平均值。在上图中,2是中心点,周围点是1。中心点将取其周围点的平均值,它将为1.从价...原创 2018-01-05 11:06:07 · 3162 阅读 · 1 评论 -
你所不知道的ndJSON:序列化与管道流
一直以为对JSON所有的语法都了如指掌,毕竟json的标准用一只手都数的过来,直到我发现了一个叫ndJSON的标准,简单说,以下2种语法都是合法的:图一:json格式图二:ndjson格式其中图一是常见的json格式,而且整个json对象是一个列表:元素由逗号分隔,再由方括号闭合。图二则是一种称为ndJSON的格式,由换行符(0x0A)分隔每个json对象,最...原创 2019-09-17 18:29:02 · 7250 阅读 · 2 评论 -
JS浅拷贝,一层深拷贝,完全深拷贝【总结】
javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法前言在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝。如下图演示:如上,arr的修改,会影响arr2的值,这显然在绝大多数情况下,并不是我们所需要的结果。因此,数组以及对象的深拷贝就是javascript的一个基本功了。首先说明,深拷贝和浅拷贝已经不是绝对的概念了,而是相对的概念,因为有一层深...原创 2018-07-15 21:10:42 · 6062 阅读 · 14 评论 -
谈谈可视化编程 (转)
原文链接:https://mp.weixin.qq.com/s/G1zDUG5mCGOKQpYBk5Na2Q在计算中,可视化编程语言(VPL)允许用户通过图形化操作程序元素而不是通过文本指定来创建程序。但一直以来,除了在一些非常有限的领域外,可视化编程都未成功。对此,有人认为文本编程语言混淆了编程的本质,也有网友表示为支持编程而开发的工具并不重要,那么可视化编程的出路到底在哪里?对此...转载 2019-06-17 20:32:16 · 15405 阅读 · 2 评论 -
信息论入门:信息守恒定律与纠错码
Hamming编码研究异或⊕的本质其实“异或”这个名词的名字取得不好,叫“奇运算”都好听些。以前我们学到异或和同或的时候讲到,异或指2个bit相异时值为1,同或指2个bit相同时值为1,于是我认为异或的逻辑意义就是2个bit值是否相同。但是后来发现异或运算(同或===异或+非)满足交换律和结合律,也就是说3个及以上的bit之间也可以毫无顺序的作异或运算。那么问题来了,3个bit之间怎么...原创 2019-05-20 20:09:45 · 1575 阅读 · 1 评论 -
世界上最简单的摘要算法: 奇偶校验编码
传说程序圈有个老哥可以口算md5, 虽然不知道真假, 但是我们终于可以说, 不就是摘要算法么, 我也能口算!原来真的有一种特殊的摘要算法简单到摘要值只有1个bit, 那就是: 奇偶校验编码.我们都知道摘要(digest)算法是一种信息有损的算法, 用于对源数据进行抽象的描述, 输出值(消息)通常是固定长度的, 例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有1...原创 2019-03-21 18:54:31 · 2901 阅读 · 0 评论 -
我是这样理解HTTPS的
我敢保证, 大多数web开发者对https的核心原理是很模糊的, 许多人都只会使用, 还有一些人都不会上https..很荣幸, 因为在公司吃得太饱, 我上次上班时候假装花了整整2天时间研究https的工作原理, 没想到最后居然研究出来了... 然后索性向公司的CA机构索要了一份SSL证书, 给某一个内网上了https. 只能说工作的时候留下50%的时间学习是很重要的投资.其实这篇文章是...原创 2019-02-19 14:35:30 · 2759 阅读 · 1 评论 -
函数式编程与Filter-MapReduce
什么是MapReduce?MapReduce来自Hadoop, 但是却被推广到所有领域, 它的中文名叫映射规约, 这个翻译非常讲究, 也非常准确, 但是我还是想把MapReduce扩展成Filter-MapReduce, 即过滤-映射-规约 三步骤,这个思考过程对我的编程有很大帮助.MapReduce是获取对象列表并对列表中的每个对象(即map)运行某些操作以生成新列表或计算单个值(即...原创 2019-01-25 13:48:36 · 1662 阅读 · 0 评论 -
嘿, 你知道吗, 再也不需要for循环了!
做一个优雅的程序员JavaScript是一门优雅的语言, 这个'优雅'体验在JS逻辑层次处于高段位的水平, 什么意思呢, 就是一个js应用的主线剧情一定全部是函数式表达的高层可读逻辑, 还是不懂? 再举个栗子: 一个node.js应用程序中index.js文件里面从来都不会出现一些封装的工具比如斐波那契求和函数, 也不会出基础现常量表达式比如数值, 字符串, 正则表达式, 因为这些都属于数...原创 2019-01-07 15:23:21 · 2757 阅读 · 2 评论 -
WebGL工作原理解析探索
这是webgl基础知识的延续。在我们继续之前,我认为我们需要在基本层面讨论WebGL和GPU实际上做了什么。这个GPU的东西基本上有两个部分。第一部分处理顶点(或数据流)到剪辑空间顶点。第二部分基于第一部分绘制像素。你打电话的时候 var primitiveType = gl 。三角形; var offset = 0 ; var count = 9 ; gl 。draw...原创 2017-09-16 14:27:33 · 1511 阅读 · 1 评论 -
[科普]关于文件头的那些事
一个文件里面的内容到底是啥?用惯了Windows的人肯定是看后缀。但是后缀这个东西说改就改,不可靠。所以,最保险的还是把文件类型信息写到文件里面,通常来说,也就是写到文件开头的那几个字节。这是最方便,最快捷的用来辨别一个文件真实内容的方法。下面举几个例子:Java class文件的魔数每一个Java Class文件都是以0x CAFEBABE开头的。Java这么做的原因就是为了快速判断一个文件是不原创 2018-01-02 13:24:14 · 2396 阅读 · 0 评论 -
Intellij IDEA和EclipsE之间的的全面对比
两个IDE之中我最常用的快捷键: 描述 Eclipse IntelliJ 代码补全 Ctrl+space ctrl+space 打开类或者接口 (两个IDE都支持使用“驼峰字符”前缀的方式来过滤查找列表,进而轻松完成搜索;比如:可以使用“...原创 2017-12-31 18:19:27 · 129647 阅读 · 32 评论 -
手把手教你Chrome扩展开发:本地存储篇
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单手把手教你开发Chrome扩展二:为html添加行为手把手教你开发Chrome扩展三:关于本地存储数据HTML5中的localStoragelocalStorage与cookie类似,它是存储在客户端浏览器中的数据,它与cookie不同的一点是它没有时间限制。localStorage属于html5中的新特原创 2017-12-17 09:08:23 · 8187 阅读 · 0 评论 -
图论中DFS与BFS的区别、用法、详解…
DFS与BFS的区别、用法、详解?写在最前的三点:1、所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次。2、实现bfs和dfs都需要解决的一个问题就是如何存储图。一般有两种方法:邻接矩阵和邻接表。这里为简单起见,均采用邻接矩阵存储,说白了也就是二维数组。3、本文章的小测试部分的测试实例是下图: 一、深度优先搜索遍历1、从顶点v出发深度遍历图G的原创 2017-05-04 10:32:24 · 1487 阅读 · 0 评论 -
Python实现浏览器自动化操作
原文地址:Python实现浏览器自动化操作作者:rayment 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没有更新了。还有就是利用selenium,可支持多种浏览器。网上资料比较多。经过比较,我选择了Splinter模块,因为利用Splinter开发浏览器自动化操作,编写代码比较简单。一、Splinter转载 2017-05-04 10:32:07 · 1313 阅读 · 0 评论 -
python实现简单爬虫功能
python实现简单爬虫功能2014-03-02 00:18 by 虫师, 449711 阅读, 68 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。 我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下原创 2017-05-04 10:31:42 · 461 阅读 · 0 评论 -
python re group()
python group()正则表达式中,group()用来提出分组截获的字符串,()用来分组re group()" />import rea = "123abc456"print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体print re.search("([0-9]*)([a原创 2017-05-04 10:31:39 · 522 阅读 · 0 评论 -
python 详解re模块
原文地址:详解re模块">python 详解re模块作者:Rocky正则表达式的元字符有. ^ $ * ? {[ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系。^ 如果放在字符串的开头,则表示取非的意思。[^5]表示除了5之外的其他字符。而如果^不在字符串的开头,则表示它本身。具有重复功能的元字转载 2017-05-04 10:31:36 · 543 阅读 · 0 评论 -
Python 异常处理
Python 异常处理python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。异常处理:本站Python教程会具体介绍。断言(Assertions):本站Python教程会具体介绍。python标准异常异常名称描述BaseException所有异常的基类SystemExi原创 2017-05-04 10:31:33 · 574 阅读 · 0 评论 -
Python中os和shutil模块实用方法集…
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下复制代码代码如下:# os 模块os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\'os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Lin...转载 2017-05-04 10:31:30 · 385 阅读 · 0 评论 -
地图收敛心得170405
寻路算法大总结!交换机生成树采用的是完全不同的D-V(distancevector)距离矢量算法,并不是很可靠.并不是任意两点之间的最短路径,因为任意两点之间取最短路径可能有环路:总权更大交换机STP不一定是最小生成树!!!举例论证因为它只是所有交换机到根桥最短贪心算法的味道kruskal算法也是贪心算法??收敛方式原创 2017-05-04 10:30:56 · 489 阅读 · 0 评论 -
《Java程序设计》终极不改版【下】
package 大学生信息管理系统;import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.util.*;import java.sql.*;class StudentInfomationBrower implements ActionListener{原创 2017-05-04 10:29:33 · 548 阅读 · 0 评论 -
《Java程序设计》终极不改版
半年前的作品,上传只为纪念~成绩: ____0.1______ Java程序设计 课程设计 题 目:大学生信息管理系统学 院: 计算机与软件学院专 业: 网络工程_____. 学 号:范晋杰20151346023. 金恒昱2015134原创 2017-05-04 10:29:29 · 601 阅读 · 0 评论 -
正则表达式【第二卷】
正则表达式30分钟入门教程版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源及本文参考文献更新纪录本文目标原创 2017-05-04 10:29:20 · 429 阅读 · 0 评论 -
进程与线程---Python_Daily
进程和线程 在操作系统看来,一个任务就是一个进程,而一个进程内部如果要做多个任务就是有多个线程。一个进程至少有一个线程。 真正的并行执行任务是由多个CUP分别执行任务,实际中是由,操作系统轮流让各个任务交替执行,任务1执行0.01秒,任务2执行0.01秒,之后再依次切换。 Python中支持两种模式: 多进程模式 多线程模式 多进程原创 2017-09-15 20:56:15 · 464 阅读 · 0 评论 -
JOptionPane弹框常用实例
最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法。很方便的,于是就简单的整理了一下。1.1 showMessageDialog显示一个带有OK 按钮的模态对话框。下面是几个使用showMessageDialog 的例子:Java代码 JOptionPane.showMessageDialog(null, "友情提示原创 2017-09-09 20:05:17 · 1079 阅读 · 0 评论