
算法和计算机基础模块
文章平均质量分 84
本兮言
“任何事情,没有坚持3个月,就没有发言权!没有坚持3年,就不能说自己懂!没有坚持7年,就不可能是专家!没有坚持10年以上,就不会拥有权威!没有坚持一辈子,就不可能有所成就!选择自己真正想做的事情,每天重复做,能坚持下来的人,定会成为某一领域的领航者。成功没有捷径,坚持才能成功!”
展开
-
跳跃表原理和实现
前提 有时候会被问到链表如果做到二分搜索,可能会有部分的人会去把链表中的值保存到数组来进行二分,但是如果知道跳跃表的话,那么这个数据结构就可以解决这个困惑,它允许快速查询一个有序连续元素的数据链表,它的效率可以做到和二分相同,都是O(logn)的平均时间复杂度,其空间复杂度为O(n)。 跳跃列表是在很多应用中有可能替代平衡树而作为实现方法的一种数据结构。跳跃列表的算法有同平衡树一...原创 2018-04-09 16:08:26 · 1051 阅读 · 0 评论 -
Hash表(高级数据结构)的平均查找长度ASL计算方法
Hash表的“查找成功的ASL”和“查找不成功的ASL” ASL指的是 平均查找时间 关键字序列:(7、8、30、11、18、9、14) 散列函数: H(Key) = (key x 3) MOD 7 装载因子: 0.7 处理冲突:线性探测再散列法 查找成功的ASL计算方法: 因为现在的数据是7个,填充因子是0.7。所以数组大小=7/0.7=10,即写出来的散列表大小为10,下标从...原创 2018-03-21 21:06:42 · 8857 阅读 · 2 评论 -
校招必备的操作系统知识(二)
1 什么是虚拟内存 虚拟内存是用于当做内存来弥补计算机RAM空间缺乏的硬盘空间。当实际RAM满时(实际上,在RAM满之前),虚拟内存就在硬盘上创建了。当物理内存用完后,虚拟内存管理器选择最近没有用过的,低优先级的内存部分写到交换文件上。这个过程对应用是隐藏的,应用把虚拟内存和实际内存看作是一样的. 2.IO IO (Input/Output,输入/输出)即数据的读取(接收)或写入(发送)...原创 2018-03-17 11:18:54 · 627 阅读 · 0 评论 -
我的理解多路复用select epoll poll
从开始学习编程后,我就想开一个 Hello World 餐厅,由于一开始资金不足,所以只能开一个古老的小客栈。 客栈运营了几天,我发现我们的客栈存在着一个问题 我们的厨师只负责炒菜,炒好了放在一边继续炒其他菜,所以店小二必须经常进出厨房,一方面看看菜到底炒好了没有,如果炒好的话,就要把菜端出来,另一方面他必须得站在外面等候客人的其他需求。并且重要的是只有一个小二,他同时只能服务一个客人,其他客人必...原创 2018-03-16 23:05:39 · 236 阅读 · 0 评论 -
三种多路复用IO实现方式:select,poll,epoll的区别
基础概念: 1.socket这个词可以表示很多概念,在TCP/IP协议中“IP地址 + TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP + 端口号”就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么两个socket组成的socket pair就唯一标识一个连接。 2.select函数预备知识 struct fd_set可以理解为一个集...转载 2018-03-08 23:29:30 · 1515 阅读 · 0 评论 -
不记住这些操作系统知识,拿什么备战校招!
这些知识点是我看了不少面经,以及查了不少资料总结的,目前我也正在每天牢记,考试只要考到操作系统,必然会考这些,希望这些能帮助到您,也可以提出宝贵意见! 1、线程和进程的基本概念 进程:一段程序的执行过程,是系统进行资源分配和调度的一个独立单位。(包括程序段,相关数据段,和进程控制块PCB) 线程:线程是进程中执行运算的最小单位,是进程中的一个实体,线程自己不拥有系统资源...原创 2018-03-02 11:05:53 · 961 阅读 · 0 评论 -
从分治算法到 MapReduce
从分治算法说起 要说 MapReduce 就不得不说分治算法,而分治算法其实说白了,就是四个字 分而治之 。其实就是将一个复杂的问题分解成多组相同或类似的子问题,对这些子问题再分,然后再分。直到最后的子问题可以简单得求解。 要具体介绍分治算法,那就不得不说一个很经典的排序算法 -- 归并排序。这里不说它的具体算法代码,只说明它的主要思想。而归并排序的思想正是分治思想。 归并...转载 2018-12-22 14:38:46 · 188 阅读 · 0 评论 -
咖啡馆的故事:FTP, RMI , XML-RPC, SOAP, REST一网打尽
周末的咖啡馆有点奇怪, 一群人围着几个老头儿在聊天。 “快说说,你们那个时候没有HTTP, 没有JavaScript,到底是怎么让这些机器上的程序进行'交谈'的?” ftp老头儿满脸沧桑,喝了一口咖啡,说道:“简单得很,机器A通过我,就是ftp, 上传一个文件到机器B的指定路径,然后再让rexec 去调用机器B上的程序,这程序是程序员写的,可以读取FTP目录下的文件,执行业务...转载 2018-12-22 14:42:42 · 277 阅读 · 0 评论