Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 

随笔分类 -  技术基础

1
数据结构和算法方面的基础知识总结和备忘
IT爱心求助站
摘要:最近发生的一些事情,让我对自己的专业有了另外一层认识。 小尹同学,你是做软件的是吗?能否帮我看一下我的电脑问题? 老同学,我的电脑安装一个软件这么都装不上,能否帮我看一下呢? 邻居你好,我的手机怎么没有声音了?能否帮我看一下? 最近,我这个号称高级软件工程师的中年奶爸,竟然被很多人叫去当作电脑修理工 阅读全文
posted @ 2019-10-18 22:21 虚生 阅读(273) 评论(0) 推荐(0) 编辑
markdown基本语法
摘要:markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。 相比WYSIWYG编辑器 优点: 1、因为是纯文本,所以只要支持markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。 2、操作简单。比如:WYSIWYG编辑时标记个标题 阅读全文
posted @ 2018-08-10 11:22 虚生 阅读(264) 评论(0) 推荐(0) 编辑
Boostnote 为程序员的开源式记事本
摘要:以前使用win10的时候,有个edairy可以使用,并且效果非常好,现在ubuntu上使用的时候,才找个这样的程序员实在太难了,找了好久,才找到一个使用比较顺手的,这里就做个备忘了,顺便做个推荐,实在不错的为程序员量身定做的记事本. 这篇是(https://itsfoss.com/boostnote 阅读全文
posted @ 2018-08-09 17:16 虚生 阅读(21631) 评论(1) 推荐(1) 编辑
VS Code 快捷键大全
摘要:前言 前言 VSCode的快捷键继承了一些IDE风格,有VS的身影,也有Emacs的身影。。简言之,内置快捷键玩熟了,效率提高不是一点两点。 VsCode 快捷键有五种组合方式(科普) 通用快捷键 基础编辑 导航 查询与替换 多行光标操作于选择 丰富的语言操作 编辑器管理 文件管理 显示 调试 集成 阅读全文
posted @ 2018-06-05 14:43 虚生 阅读(240) 评论(0) 推荐(0) 编辑
python实现桶排序算法
摘要:桶排序算法也是一种可以以线性期望时间运行的算法,该算法的原理是将数组分到有限数量的桶里,每个桶再分别排序。 它的算法流程如下所示: 在桶排序输入的参数为正整数时,排序算法比较简单,如下所示: 当需要排序的参数为小数时,就不能单靠桶排序来解决了,这时要加上一个插入排序,具体代码如下所示: 参考文献: 阅读全文
posted @ 2018-01-12 10:53 虚生 阅读(740) 评论(1) 推荐(0) 编辑
python实现线性排序-基数排序
摘要:基数排序算法是一种是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明 可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Ma 阅读全文
posted @ 2018-01-11 18:18 虚生 阅读(744) 评论(0) 推荐(0) 编辑
python实现线性排序算法-计数排序
摘要:计数排序假定输入元素的每一个都是介于0到k之间的整数,此处K为某个整数,当k=O(n)时,计数排序的运行时间为O(n) 它的基本思想是:根据每个输入元素x确定小于x的元素个数,根据这个信息把x直接放到它在最终输出数组中的特定位置上。 通俗地理解,例如有10个年龄不同的人,统计出有8个人的年龄比A小, 阅读全文
posted @ 2018-01-11 12:14 虚生 阅读(280) 评论(0) 推荐(0) 编辑
python实现冒泡排序
摘要:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换 慢慢“浮”到数列的顶端。冒泡排序对n个项目需要O(n*2)的比较次 阅读全文
posted @ 2018-01-08 10:30 虚生 阅读(592) 评论(0) 推荐(0) 编辑
python实现散列表的链表法
摘要:在散列中,链接法是一种最简单的碰撞解决技术,这种方法的原理就是把散列到同一槽中的所有元素 都放在一个链表中。 链接法有两个定理,定理一: 在简单一致散列的假设下,一次不成功查找的期望时间为O(1 + n) 定理二: 在简单一致散列的假设下,平均情况下一次成功的查找需要的时间为O(1 + n) 该方法 阅读全文
posted @ 2018-01-05 19:50 虚生 阅读(555) 评论(0) 推荐(0) 编辑
python实现散列表的直接寻址法
摘要:散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数, 将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 一个通俗的例子是,为了查找电话簿中某人的号 阅读全文
posted @ 2018-01-05 09:51 虚生 阅读(578) 评论(0) 推荐(0) 编辑
python实现二分查找算法
摘要:二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法。搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束;如果查找的数大于中间数,则在数组的前一半查找,否则,在后一半查找。直到找到相应 数据止。 该算法的的复杂度为 O(log n),相比 阅读全文
posted @ 2017-12-29 14:24 虚生 阅读(589) 评论(0) 推荐(0) 编辑
python中顺序查找分析和实现
摘要:顺序查找算法是一种很基本的查找算法,该算法的复杂度一般是最大是O(n),假如加上顺序查找,算法的复杂度 还要降一倍,为O(n/2)。 Python的代码实现如下所示: 运算结果: 阅读全文
posted @ 2017-12-27 14:04 虚生 阅读(592) 评论(0) 推荐(0) 编辑
python中实现排序list
摘要:作为一个非常实用的一种数据结构,排序链表用在很多方面,下面是它的python代码实现: Node的代码: 运行结果: 阅读全文
posted @ 2017-12-22 11:32 虚生 阅读(239) 评论(0) 推荐(0) 编辑
python中使用双端队列解决回文问题
摘要:双端队列:英文名字:deque (全名double-ended queue)是一种具有队列和栈性质的抽象数据类型。 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。 双端队列可以在队列任意一端入队和出队。此外,经常还会有一个查看(Peek)操作,返回该端的数 据而不将其出队。 p 阅读全文
posted @ 2017-12-22 09:41 虚生 阅读(263) 评论(0) 推荐(0) 编辑
python中基于queue的打印机仿真算法
摘要:使用打印机的模型是queue中最经典的应用之一,这里就回顾一下queue在这里的使用方法和 起的重要作用。 为了仿真打印状态,这里需要把真实环境中的三个物理模型要建模出来,分别是:打印者,打印 任务,和处理队列。 首先打印者的实现如下所示: 打印任务的代码实现: 任务处理: 测试结果: 阅读全文
posted @ 2017-12-21 11:34 虚生 阅读(505) 评论(0) 推荐(0) 编辑
python中使用queue实现约瑟夫环(约瑟夫问题)求解
摘要:约瑟夫问题:是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。 从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列; 依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后[1] 结果 阅读全文
posted @ 2017-12-20 11:06 虚生 阅读(737) 评论(0) 推荐(0) 编辑
python中stack在实际中的简单应用之进制转换
摘要:计算机的世界是二进制的,而人类的世界是十进制的,当数学公式用计算机表达时,经常 要转换。这就用到了进制的转换。 首先,我们先了解一下二进制和十进制的发展历史: 二进制: 现代的二进制首先由大数学家莱布尼兹设计的。 1854年,英国数学家乔治·布尔发表了一篇里程碑式的论文,其中详细介绍了一种代数化的逻 阅读全文
posted @ 2017-12-19 10:03 虚生 阅读(576) 评论(0) 推荐(0) 编辑
python中stack在实际中的简单应用之平衡符号
摘要:很多书籍都在讲stack的概念和使用方法,等我们把概念熟悉后,发现不知道在什么场景下使用 该结构体,这里就列几个实用的例子,让大家了解一下stack在实际中的用处和厉害之处。 由于stack中的特点是可以成对的pop和push的,针对成对出现的东西,是有用武之地的,特别是 处理一些平衡符号方面,是有 阅读全文
posted @ 2017-12-18 21:13 虚生 阅读(318) 评论(0) 推荐(0) 编辑
python中两种栈实现方式的性能对比
摘要:在计算机的世界中,同一个问题,使用不同的数据结构和算法实现,所使用的资源有很大差别 为了方便量化python中算法的资源消耗,对性能做测试非常有必要,这里针对stack做了python语言 下的性能分析。为后续算法分析做个基础。 代码: 在linux上运行的主频为2.4G的系统上运行结果: 可以看出 阅读全文
posted @ 2017-12-18 16:24 虚生 阅读(246) 评论(0) 推荐(0) 编辑
python实现stack并测试
摘要:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。 这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新 元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元 素删除掉,使 阅读全文
posted @ 2017-12-18 15:41 虚生 阅读(396) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示