算法

md5sum命令

我是研究僧i 提交于 2020-02-05 18:59:27
md5sum命令采用MD5报文摘要算法(128位)计算和检查文件的校验和。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。 [root@node01 ~]# md5sum /etc/passwd 4f92557fa8f6028618487d6610670bf4 /etc/passwd 生成文件的md5值 [root@node01 ~]# md5sum /etc/passwd > passwd.md2 [root@node01 ~]# md5sum -c passwd.md2 /etc/passwd: 确定 首先生成md5文件,并检查。 [root@node01 ~]# cp /etc/passwd /tmp [root@node01 ~]# cd /tmp/ [root@node01 tmp]# md5sum passwd > passwd.md5 [root@node01 tmp]# md5sum -c passwd.md5

「Do.028」数据结构与算法——入门(一)

走远了吗. 提交于 2020-02-05 09:04:25
「Do.028」数据结构与算法——入门(一) 首发公众号: Android程序员日记 作者: 贤榆的榆 如果喜欢,请 关注、赞赏、点在看 阅读时间:1362字 4分钟 前言 先说说为什么想要写数据结构与算法这个系列文章,主要出于两方面考虑: 第一个是面试的需要,大厂和外企尤大多数都会问到关于算法和数据结构方面的问题,而每次都考背,那其实也很难形成长期记忆,也不能与面试官进一步深入探究。 其二就是工作的需要了,作为一个初级的程序员用ArrayList和HashMap可能就几乎可以解决大部分问题了,因为我们的App用户量不算大,业务逻辑不算复杂,所以浪费一点性能和手机资源也不会有太大的问题暴露出来,但是当App变得越来越大,业务逻辑也越来越复杂时,我们就需要去考虑用在某些场景下LinkedList是不是会更好,TreeMap会不会比HashMap的使用成本更低?我知道很多同学会马上说出他们之间两两的区别。但如果不知道其背后的实现原理和逻辑,还真的不太可能会考虑到使用别的去代替一个我们常用的。 数据结构入门 针对自己自学《数据结构导论》这门课程,真的是有一种感触就是——出来混的总是要还的。高中玩过去了,混过去了,现在招聘市场上也会对本科学历有要求,像我这种正在专升本的,其实以后可能也是没什么用了。因为人家可能会写明需要统招本科。那为什么我还想要自考去拿一个计算机的本科学历

Design Pattern(设计模式)

回眸只為那壹抹淺笑 提交于 2020-02-05 03:39:30
设计模式描述了软件设计过程中某一类常见问题的一般性解决方案。 面向对象设计模式描述了类与相互通信的对象之间的组织关系。目的是应对变化、提高复用、减少改变。 一般而言,一个设计模式有四个基本要素:  模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。  问题(problem) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。  解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。  效果(consequences) 描述了模式应用的效果及使用模式应权衡的问题

【ARTS】01_05_左耳听风-20181210~1216

谁都会走 提交于 2020-02-05 02:31:39
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algorithm 【leetcode】125验证回文串 https://leetcode.com/problems/valid-palindrome/ 1)problem 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 2)answer 1、普通思路 把数字和字符提取出来,然后如果是字母就转换为小写。加到新的字符串中。 对于这个新的字符串,使用一个多条件循环,分别从字符串头、字符串尾遍历字符串的中间值,如果不一致就退出。直到遍历结束还是一致就判定为回文字符串。 2、高级思路 在discuss看到的答案。 用一个大循环分别从字符串头、字符串尾遍历字符串的中间值,里面两个小循环,用isalnum()函数判断是不是字母数字,如果不是就向前移动指针。 https://leetcode.com/problems/valid-palindrome

算法之排序(上)-c语言实现

此生再无相见时 提交于 2020-02-05 02:29:15
文章来源:http://blog.seclibs.com/算法之排序(上)-c语言实现/ 在上一篇文章中,我们说了时间复杂度为 O(n2)的几个排序算法,冒泡排序、插入排序、选择排序,在理解上和实现上都没有太难的地方,这里在实现的时候,没有再自己实现数组或链表,而是使用了c语言自带的数组进行实现的,代码中没有太难理解的地方,就直接上代码了 如果需要下载代码,请移步文末 代码: GitHub 文章首发公众号和个人博客 公众号:无心的梦呓(wuxinmengyi) 博客:http://blog.seclibs.com/ 来源: CSDN 作者: Vesel『无心』 链接: https://blog.csdn.net/qq_18501087/article/details/104174076

算法入门第一课

孤人 提交于 2020-02-05 02:24:37
算法入门第一课 题目一: 时间复杂度(粗描): 1)常数时间复杂度: 不看系数,只要高阶,不要低阶。 2)评价一个流程的好坏: 先看时间复杂度的指标,然后在分析不同数据样本的实际运行时间,也就是“常数时间项”。 在相同时间复杂度的情况下,大量数据进行比较是十分重要的。 题目二: 选择排序,冒泡排序细节的讲解与复杂度分析 额外空间复杂度(用完可以释放的空间): 时间复杂度O(n^2) 额外空间复杂度O(1),与数据状况无关 选择排序:依次选择最小的和前面交换。 冒泡排序:最大的数向后排。 题目三: 插入排序:0 0有序,0 1有序,0~2有序,…挨着交换 时间复杂度:最坏的时候O(n^2):最好O(n) 额外空间复杂度O(1),与数据状况有关。 题目四: 二分法排序:O(log N) 先是有序的数组。每次砍一半。 1)在一个有序的数组中,找某个数是否存在。 2)在一个有序数组中,找>=某个数最左侧的位置 3)局部最小值问题,定义: 1)[0]<[1] 0是局部小 2) [n-1]<[n-2] n-1是局部小 3) [i-1]<[i]<[i+1] i是局部小 问题五: 异或运算的性质与扩展 二进制操作 1) 异或运算 ,不同为一相同位零。(无进位相加) 同或运算 相同为一不同为零 2) 满足交换律和结合律 (无进位相加) 3)不用额外变量交换两个数(不用申请临时变量) 例题

算法的力量(李开复)

杀马特。学长 韩版系。学妹 提交于 2020-02-05 00:37:05
转载: 算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。 算法与我 当我在1980年转入计算机科学系时,还没有多少人的专业方向是计算机科学。有许多其他系的人嘲笑我们说:“知道为什么只有你们系要加一个‘科学’,而没有‘物理科学系’或‘化学科学系’吗?因为人家是真的科学,不需要画蛇添足,而你们自己心虚,生怕不‘科学’,才这样欲盖弥彰。” 其实,这点他们彻底弄错了。真正学懂计算机的人(不只是“编程匠”)都对数学有相当的造诣,既能用科学家的严谨思维来求证,也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”。 记得我读博时写的Othello对弈软件获得了世界冠军。当时,得第二名的人认为我是靠侥幸才打赢他

数据加密方法及原理介绍

非 Y 不嫁゛ 提交于 2020-02-04 22:14:17
一、加密术语 1、加密 透过数学公式运算,使文件或数据模糊化,将容易识别的明文变成不可识 别的密文 用于秘密通讯或安全存放文件及数据 2、解密 为加密的反运算 将已模糊化的文件或数据还原,由密文还原出明文 3、密钥 是加密/解密运算过程中的一个参数,实际上就是一组随机的字符串 二、加密方法 1、对称式加密 使用同一把密钥对数据进行加密和解密 ,又称对称密钥 (Symmetric Key) 或(Secret Key) 进行加密通信前需要将密钥先传送给对方 ,或者双方通过某种密钥交换方法得到一个对 称密钥 缺点 :破解相对较容易 优点 :加密 /解密运算相对简单 ,耗用运算较少 ,加密 /解密效率高 常见算法 :40Bits ~128Bits DES,3DES,AES,RC2,RC4 等 2、非对称式加密 (也称为公钥 /私钥加密 ) 公钥加密主要用于身份认证和密钥交换 .公钥加密 ,也被称为 "不对称加密法 ",即加解密过 程需要两把不同的密钥 ,一把用来产生数字签名和加密数据 , 另一把用来验证数字签名和对 数据进行解密 . 使用公钥加密法 ,每个用户拥有一个密钥对 ,其中私钥仅为其个人所知 , 公钥则可分发给 任意需要与之进行加密通信的人 .例如 :A 想要发送加密信息给 B,则 A 需要用 B 的公钥加 密信息 ,之后只有 B 才能用他的私钥对该加密信息 进行解密 .

硬核图书系列:《漫画算法:小灰的算法之旅》

可紊 提交于 2020-02-04 18:23:08
小编说 : 疫情像施了魔法一样,改变了我们每个人春节的轨迹。时间则从永远不够用突然变成了多得似乎不知干什么用。博文菌希望疫情没有改变我们那颗求知若渴的心。 人与人的差距也可能就在这个不知何时结束的假期中拉开了。小伙伴们加油! 许多人认为学习编程就是学习最新的编程语言、技术和框架, 其实计算机算法更重要 。算法是编程的核心,就像一台计算机的CPU,算法的好坏决定了一个系统的效率高低。 每一位互联网技术人都逃不开算法,但是其枯燥乏味的表象足以锤爆一众初学者。即便是那些网传的“圣经宝典”,你若想心情愉悦地啃下来,那自然是不可能的,尤其是那些动不动就七八百页的“砖著”,不收了你半条小命就别想走出去! 那博文菌今天给你推荐一本,不仅能帮你擦掉泪痕与皱纹,还能轻轻松松把算法学懂的灵药——《漫画算法:小灰的算法之旅》 这本书,博文菌已经推荐过无数次了,但还是忍不住要大喊一句—— 这书真的是太太太优秀了! 本书用漫画 故事的形式,给算法这颗“炮弹”包上“糖衣”! 轻松愉悦间把算法给你整得明明白白儿的! 在这里没有干巴巴的长篇大论, 你也不会被复杂原理按在地上摩擦, 算法知识就像长了翅膀一样,嗖嗖嗖地直往脑子里飞! 喔,这何止是无痛,简直比嗑糖还过瘾呐! 有些可爱的小老弟可能觉得算法就是套路,想用的时候总能弄明白。在现实工作中,需要我们设计甚至实现一个算法的机会确实很少,即使用到,现学可能都来得及。

硬核图书系列:《漫画算法:小灰的算法之旅》

假如想象 提交于 2020-02-04 15:04:31
小编说 : 疫情像施了魔法一样,改变了我们每个人春节的轨迹。时间则从永远不够用突然变成了多得似乎不知干什么用。博文菌希望疫情没有改变我们那颗求知若渴的心。 人与人的差距也可能就在这个不知何时结束的假期中拉开了。小伙伴们加油! ___ 许多人认为学习编程就是学习最新的编程语言、技术和框架, 其实计算机算法更重要 。算法是编程的核心,就像一台计算机的CPU,算法的好坏决定了一个系统的效率高低。 每一位互联网技术人都逃不开算法,但是其枯燥乏味的表象足以锤爆一众初学者。即便是那些网传的“圣经宝典”,你若想心情愉悦地啃下来,那自然是不可能的,尤其是那些动不动就七八百页的“砖著”,不收了你半条小命就别想走出去! 那博文菌今天给你推荐一本,不仅能帮你擦掉泪痕与皱纹,还能轻轻松松把算法学懂的灵药——《漫画算法:小灰的算法之旅》 这本书,博文菌已经推荐过无数次了,但还是忍不住要大喊一句—— 这书真的是太太太优秀了! 本书用漫画 故事的形式,给算法这颗“炮弹”包上“糖衣”! 轻松愉悦间把算法给你整得明明白白儿的! 在这里没有干巴巴的长篇大论, 你也不会被复杂原理按在地上摩擦, 算法知识就像长了翅膀一样,嗖嗖嗖地直往脑子里飞! 喔,这何止是无痛,简直比嗑糖还过瘾呐! 漫画算法:小灰的算法之旅(全彩)(限量签名 随机发售)作者:魏梦舒(@程序员小灰) 有些可爱的小老弟可能觉得算法就是套路