自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不积跬步无以至千里

不积跬步无以至千里

  • 博客(41)
  • 收藏
  • 关注

转载 Linux20命令

你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现在我的世界里了。从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳。我担心该记住多少命令,来帮助我完成所有任务。毫无疑问,在线文档,书籍,man pages以及社区帮了我一个大忙,但是我还是坚信有那么一篇文章记录了如何简单学习和理解命令的秘籍。这激发了我掌握Linu

2017-02-28 21:37:34 250

转载 堆栈区别

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。C++内存区域分为5个区域。分别是堆,栈,自由存储区,全局/静态存储区和常量存储区。栈:由编译器在需要的时候分配,在不需要的时候自动清除的变量存储区。里面通常是局部变量,函数参数等。堆:由n

2017-02-27 20:22:36 424

转载 linux下malloc()和free()的原理及实现

在学习C语言的时候知道了动态内存分配的概念,也知道了malloc()的使用方式,但是一直没有去了解或者认真学习malloc()的实现原理。今天看到关于动态内存分配方面的资料,就整理总结下。在C语言中只能通过malloc()和其派生的函数进行动态的申请内存,而实现的根本是通过系统调用实现的(在linux下是通过sbrk()系统调用实现),这次的总结也是基于linux系统。在说明mal

2017-02-27 19:44:33 431

转载 秋招总结(C++方向,腾讯、百度、华为、滴滴、搜狐)

作者:caelum链接:https://www.nowcoder.com/discuss/13362来源:牛客网写在前面的话:        今天收到了腾讯的签约邀请,这意味着我的秋招之旅基本上可以结束了。平时经常在牛客上刷题以及看大家分享的面经,受益匪浅,因此趁着还有点小激动,跟大家分享下我的经历。首先来总结一下这次秋招,我投了30家公司,以下列出,给来年的学弟学妹们做些参考

2017-02-27 19:33:57 1581

转载 快排最优时间复杂度,平均时间复杂度和最差时间复杂度分析

我们来分析一下快速排序法的性能。快速排序的时间性能取决于快速排序递归的深度,可以用递归树来描述递归算法的执行情况。如图9‐9‐7所示,它是{50,10,90,30, 70,40,80,60,20}在快速排序过程中的递归过程。由于我们的第一个关键字是50,正好是待排序的序列的中间值,因此递归树是平衡的,此时性能也比较好。 图9-9-7在最优情况下,Part

2017-02-27 19:24:55 9205

转载 秋招总结

作者:周星星_链接:https://www.nowcoder.com/discuss/18518来源:牛客网我是广东某工业大学17年应届生,秋招这段时间在牛客这个大社区收益良多。非常感谢能有这样一个圈子。许多大神、收割机在面经中自称为学渣、渣硕什么的,我这样的真学渣也能理解,毕竟大家总是有更高的目标,周围总是有更神的牛人。但你们大神都把offer抢完了,学渣这称号就不要和我抢了

2017-02-27 17:31:06 2322

转载 DNS原理及其解析过程

DNS原理及其解析过程精彩剖析     网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名

2017-02-27 17:17:43 256

转载 非计算机专业的秋招之路

作者:非衣链接:https://www.nowcoder.com/discuss/18612来源:牛客网题外话秋招已经结束了,想了想还是准备把自己的面试历程写一下。也算是对大学四年的一个交代。自己应该算是一个小白吧,就读于西安科技大学,环境工程专业。非985,非211。学校和西安电子科技大学就差两个字,但差的很远,坐落在骊山脚下。本身算是对计算机感兴趣,但还是比较弱。没有名

2017-02-27 17:08:10 4518 4

转载 回退N帧协议与选择重传协议

本文转自 http://www.cnblogs.com/ulihj/archive/2011/01/06/1927613.html滑动窗口协议    一图胜千言,看下面的图,简单解释下:    发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面

2017-02-27 17:06:51 36007 1

转载 二叉树非递归遍历

二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍

2017-02-27 16:11:50 234

转载 完美笔试

#include #include #include using namespace std;#define pb push_back#define mp make_pair#define ll long long#define ull unsigned ll#define db double#define INF 0x3f3f3f3f#define MOD 1000000

2017-02-27 15:14:57 424

转载 关于堆排序建堆时间复杂度的证明

建堆的过程,看起来外面一层循环O(n),里面是个logn的调整函数,时间复杂度貌似是nlogn的,但是仔细分析,其实质是O(n)的。证明如下:首先,对于高度为h的完全二叉树,其第i层的元素个数为2^(i-1),对于堆的每一层,调整的深度都不一样,每层的元素的调整深度小于等于h-i,假设每层调整的深度是h-i,欲构建的堆是个完全二叉树,那么对于每层来说:最后一层不用调整;

2017-02-27 14:56:19 2040

转载 从头到尾彻底理解KMP

作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。1. 引言    本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。    然近期因开了个算法

2017-02-25 22:02:51 164

转载 对空间中6个点两两连线,用红黄两种颜色对这些边染色,则同色的三角形至少有几个?

最早在一个视频里看到该问题,只说用鸽笼原理可以证明肯定存在同色的三角形,没说具体怎么证。一直想不出来,后来在百度查了一下,发现一个如标题的问题,但没有答案。百度上的问题比视频里的更深一步,问有几个同色的三角形。    经过几个月断断续续琢磨,今天终于得证了。    第一步证明存在同色三角形:一个点A共需连出去5条线,根据鸽笼原理,至少有3条线同色,这3条线的对端点与A构成的3个三角

2017-02-24 21:45:41 2226

转载 赛马问题

一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少得比多少场才能知道跑得最快的5匹马。http://hxraid.iteye.com/blog/662643http://www.bcwhy.com/thread-11411-1-1.htmlhttp://blog.csdn.net/d

2017-02-24 21:23:40 322

转载 二叉树的非递归遍历

二叉树的非递归遍历         二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对

2017-02-24 13:57:15 136

转载 常用socket函数详解

常用socket函数详解关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确。每次都查半天,经常烦恼于此。索性都弄得清楚、通透,并记录下来,一来便于自己记忆,再者以防日后查阅、回顾。 主要介绍:socket、bind、listen、connect、accept、send、sendto、recv、recv

2017-02-24 11:46:22 386

转载 HTTP POST GET 本质区别详解

一 原理区别    一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,D

2017-02-23 18:55:03 220

转载 为什么TCP连接需要三次握手分开需要四次握手?

TCP的三次握手和四次断开TCP是一个面向连接的服务,面向连接的服务是电话系统服务模式的抽象,每一次完整的数据传输都必须经过建立连接,数据传输和终止连接3个过程,TCP建立连接的过程称为三次握手,下面看一下三次握手的具本过程TCP三次握手过程1 主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事

2017-02-23 18:41:52 299

转载 如何测试一个网页登陆界面

具体需求: 有一个登陆页面, (假如上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的test case.)此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力这个题目还是相当有难度的, 一般的人很难把这个题目回答好。首先,你要了解用户的需求,比如这个登录界面应该是弹出窗口式的,

2017-02-23 17:08:23 323

转载 C++中多线程与Singleton的那些事儿

前言前段时间在网上看到了个的面试题,大概意思是如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton。看到这个题目后,第一个想法就是用Scott Meyer在《Effective C++》中提到的,在static成员函数中构造local static变量的方法来实现,但是经过一番查找、思考,才明白这种实现在某些情况下是有问题的。本文主要将从最基本的单线程中的S

2017-02-23 12:24:29 226

转载 TCP与UDP区别

TCP UDPTCP与UDP基本区别  1.基于连接与无连接  2.TCP要求系统资源较多,UDP较少;   3.UDP程序结构较简单   4.流模式(TCP)与数据报模式(UDP);   5.TCP保证数据正确性,UDP可能丢包   6.TCP保证数据顺序,UDP不保证   UDP应用场景:  1.面向数据报方式  2.网络数据大多为短消息   3

2017-02-23 12:02:12 257

转载 BAT+华为SP面经,聊一些细节加分项

作者:Sesede链接:https://www.nowcoder.com/discuss/3053来源:牛客网先讲面试流程,按时间和公司来排序:阿里:阿里在拥抱变化消息放出来之后,随随便便做了笔试题,然后竟然收到了面试通知。技术面略温和。可能是他们不招人的原因。一面:问了一个改进的二分查找,要求找到输入为N的第N个值为K的数。要求写了多线程下的单例。

2017-02-23 11:49:51 1386

转载 硬中断与软中断的区别

http://www.linuxidc.com/Linux/2014-03/98013.htm硬中断:1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。2. 处理中断的驱动是需要运行在CPU上

2017-02-23 10:48:38 297

转载 用户堆栈和系统堆栈的区别

系统栈(也叫核心栈、内核栈)是内存中属于操作系统空间的一块区域,其主要用途为:              (1)保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出;              (2)保存操作系统子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量。    用户栈是用户进程空间中的一块区域,用于保存用户进程的子程序间相互调用的

2017-02-22 16:03:50 5114 3

转载 通道技术与缓冲技术

通道是独立于中央处理器的,专门负责数据I/O传输工作的理单元。从现代计算机系统的结构上看,各种外部设备均有相应的设备控制器,这些设备控制器再通过通道连接在计算机系统的公共系统总线上。通道对外部设备实行统一管理,它代替CPU对I/O操作进行控制,从而使CPU和外部设备可以并行工作。所以通道又称为I/O处理机。采用通道这种I/O结构的最大优点是,可以实现中央处理器和各种外部设备并行工作。采

2017-02-22 15:49:31 6274

转载 CMAKE的使用

一、      基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、      概念out-of-source build,与in-source build相对,即将编译输出文件

2017-02-22 12:36:33 336

转载 后台开发知识点总结(一、Linux和OS)

偶然在知乎上看到想要从事linux后台开发需要的能力集锦,总结的挺全面的,鉴于自己贫弱的记忆力,还是在这里总结一下供以后查看,顺便检验一下自己。   1、 命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验  在《TCP/IP》协议一书中,经常使用到netstat和tcpdump这两个命令,netstat常用

2017-02-21 20:18:42 2437

转载 后端c++知识点总结

这一篇是C++的一些面试点的总结。1、一个String类的完整实现必须很快速写出来(注意:赋值构造,operator=是关键)   如果对C++String不熟悉的话,先看http://www.cplusplus.com/reference/去了解一下String类常用的方法,如果想了解C语言的实现,去看一下《C语言接口与实现》(十五章 低级字符串)。   Scott Meyers

2017-02-21 20:18:06 534

转载 后端网络编程知识点总结

这一篇是网络编程的面试知识点的总结。不打算从计算机网络的基础讲起,只是摘要性的总结一下知识点,更多的内容请从经典的书籍中获取。1、tcp与udp的区别(必问)可靠性  首先,TCP是一个面向连接的协议,需要三次握手。具有可靠性,但是并不是百分百的可靠,它通过序列号确认,超时重传等机制提供数据的可靠传送或者故障的可靠通知,但并不能保障数据一定会被对方接收。   UDP是一

2017-02-21 20:17:38 825

转载 牛人面试经历(一)

牛人面试经历(一)应届生上泡了两年,一直都是下资料,下笔试题,面试题。一直都在感谢那些默默付出的人。写这个帖子花了我两个夜晚的时间,不是为了炫耀,只是为了能给那些“迷惘”的学弟学妹,一点点建议而已。大家何必那么认真,更没必要说脏话。我不在乎你们怎么评价我。只要有人觉得帖子有用,我就欣慰了。谢谢大家,别说脏话,以和为贵。饮水思源,谢谢应届生上默默付出的师兄师姐,谢谢那么多份笔试题,面试题

2017-02-21 15:31:12 1281 1

转载 《APUE》中的函数整理

第1章 unix基础知识1. char *strerror(int errnum)该函数将errnum(就是errno值)映射为一个出错信息字符串,返回该字符串指针。声明在string.h文件中。2.void perror(const char *s)该函数基于当前的errno值,在标准出错文件中输出一条出错消息,然后返回。声明在stdio.h文件中。它首先输出

2017-02-21 15:28:55 549

转载 信号量:整型、记录型信号量以及利用信号量实现进程互斥和前驱关系

信号量机构是一种功能较强的机制,可用来解决互斥与同步的问题,它只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作”和“V操作”。原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。如前述的“Test-and-Set”和“Swap”指令,就是由硬件实现的原子操作。原语功能的不被中断执行特性在单处理机时可由软件通过屏

2017-02-21 11:05:59 5775

转载 页面抖动(颠簸)和工作集(驻留集)

页面抖动(颠簸)在页面置换过程中的一种最糟糕的情形是,刚刚换出的页面马上又要换入主存,刚刚换入的页面马上就要换出主存,这种频繁的页面调度行为称为抖动,或颠簸。如果一个进程在换页上用的时间多于执行时间,那么这个进程就在颠簸。频繁的发生缺页中断(抖动),其主要原因是某个进程频繁访问的页面数目高于可用的物理页帧数目。虚拟内存技术可以在内存中保留更多的进程以提髙系统效率。在稳定状态,几乎主存的

2017-02-20 09:38:32 4555 1

原创 动态规划题集

hdu 2084 数塔Problem Description在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗? Input输入数据首先包括一个整数C,表示测试实例的个数,每个测

2017-02-19 20:48:54 481

转载 面向对象的三个基本元素,五个基本原则

链接:https://www.nowcoder.com/profile/192196/test/6612033/1115#summary来源:牛客网一、三个基本特征面向对象的三个基本特征是:封装、继承、多态。1)封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操

2017-02-19 10:54:44 604

转载 磁盘管理

磁盘管理包括磁盘调度算法、磁盘高速缓存、RAID技术。首先学习磁盘的结构如图所示:磁盘由多个盘片组成,每个盘片有两个盘面,每个盘片都有两个磁头,统一由磁头臂控制。盘片上的存储区域被分为磁道,每个磁道上又分多个扇区。如图,每个扇区的大小事512字节,所以扇区也是数据存储和传输的基本单位。按磁头的工作方式,可以分为活动头磁盘和固定头磁盘。1.活动头磁盘活

2017-02-18 13:37:37 600

转载 树、森林和二叉树之间的转换

树、森林和二叉树之间的转换 树转换为二叉树1. 加线     在所有兄弟结点之间加一条连线。2. 去线     树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。3. 层次调整    以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子)森林转换为

2017-02-17 15:33:44 366

转载 next_permutation原理剖析

http://blog.csdn.net/qq575787460/article/details/41215475最近刷leetcode的时候遇见next permutation这道题,感觉挺有意思的一个题目,递归的方法是较简单并且容易想到的,在网上搜了其余的解法,就是std::next_permutation非递归解法,但是让人不是很舒服的就是关于原理的部分,千篇一律的都是摘抄《ST

2017-02-16 22:33:06 222

转载 AVL树的旋转操作 图解 最详细

http://blog.csdn.net/collonn/article/details/20128205AVL树的旋转操作 图解 最详细各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。我们称呼左旋为:逆进针旋转。我们称呼右旋为:顺进针旋转。老规矩,直接上图。如果再看不懂AVL树的旋转,我就无能为力了。。。如果图中有错误,欢迎指正

2017-02-15 16:07:57 304

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除