自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 PHP解释器引擎执行流程

这里将介绍引擎内部执行一个PHP脚本的流程,以cli SAPI为例子来对流程中核心的部分做简单介绍,省去一些初始化及清理操作。    cli(Command Line Interface)即PHP的命令行模式,现在此SAPI是默认安装的,我们在服务器上安装完PHP之后,一般会生成一个可执行文件,假设此文件为/usr/local/bin/php ,那么我们在SHELL下可以用以下命令来执行一

2014-04-26 19:31:48 1916

原创 TCP与UDP的区别

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。UDP(User Datagram Protocol)        UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。        即使是出现网络拥堵的情况下

2014-04-24 21:29:12 69594 7

原创 算法学习十六----求最大公约数

题目:求最大公约数用辗转相除法求最大公约数的解法相信大家都很熟悉,就是用大数除以小数,然后取出余数与之前较小的数再递归地进行同样的操作,直到其中一个数为0。但是这样的除法在遇到大整数的时候作除法非常地耗时,这样对效率方面有很大的影响。设两个数为x,y采用辗转相除法的分析,如果一个数能够同时正处x和y,则必能同时整除x-y和y;而能够同时整除x-y和y的数也必能同时整

2014-04-21 13:46:47 1201

原创 HTTP协议之报文详解

学习WEB开发需要对HTTP协议熟悉,下面直接进入主题。一、什么是报文报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。HTTP报文是由一行一行简单的字符串组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹

2014-04-20 12:51:28 28142 3

原创 算法学习十五----找数组最大值和最小值

题目:给定一个数组,找出数组中的最大值和最小值算法思路一:使用两个“游标”,p代表最大值,q代表最小值,初始为数组的第一个和第二个,不断向后移并且做比较,每次移动时将较大值与p比较,将p赋为较大值,较小值也同理。这样就能找到最大值和最小值。此算法要注意的地方就是当数组只有一个元素以及数组的个数为奇数个时要做另外的处理算法伪代码如下:if array.size = 1then

2014-04-20 10:01:25 7321

原创 HTTP请求中POST与GET的区别

一、原理区别一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET

2014-04-18 17:15:58 177517 20

原创 算法学习十四----逆序输出链表

题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。逆序输出链表,可以采用借用额外空间,使用栈的数据结构,然后遍历一次链表,且每遇到一个节点就将其放入到栈中,直到最后一个节点,最后将栈输出,这样就实现了逆序输出链表。还有一种方法就是递归实现,每次访问到一个节点的时候,先递归输出它的下一个节点,再输出节点本身,这样就实现了想要的结果。算法伪代码如下:   

2014-04-18 15:22:26 1207

原创 算法学习十三----和为n连续正数序列

题目:输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。算法思路采用辅助空间保存序列。用i从1开始做起点,j从i+1开始,直到i等于(1+n)/21、如果i-j的和等于n,则输出序列2、如果i-j的和大于n,则将序列清空3、如果i-j的和小于n,则将j假

2014-04-17 21:25:26 724

原创 算法十二----左旋转字符串

题目:  定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。    如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。    要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。算法思路:把字符串看做由两段组成,记作XY,题目的意思是要求出YX。记R(X)为X字符串旋转后的字符串,则R(R(X)

2014-04-16 09:33:29 793

转载 gdb常用命令

调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程序

2014-04-15 12:01:22 556

转载 C++多态的实现原理

1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动态绑定。5. 纯虚函数是虚函数再加上= 0。6. 抽象类是指包

2014-04-15 07:58:35 633

原创 算法学习十一----连续最长的数字串

写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为1

2014-04-13 11:21:02 939

转载 堆和栈的区别

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2014-04-12 10:31:31 477

原创 算法学习十----整数的二进制表示中1的个数

题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。这是一道考查位运算的题目,做位运算的时候一定要把负数也考虑进去,刚开始做的时候忘了考虑进去,结果输入一个负数的时候就彻底凌乱了。刚开始的思路是先判断整数的最右边一位是不是1,然后把整数右移一位,这样,原来处于右边第二位的数字现在被移到第一位了,再判断是不是1。这

2014-04-10 15:21:05 771

转载 并行快速排序

并行快速排序感谢网友浅水清流投递本稿。并发算法是多核时代开始流行的技术趋势,比如tbb,ppl都提供了大量有用的并发算法。经典算法中,排序是一个很适合采用分治法并发的场合,比如快速排序。常规的快速排序,先在数组中选取一个基准点,将数组分区为小于基准点和大于基准点(相同的数可以到任一边),对分区的子数组递归的执行分区的操作,当子数组长度为1时退出递归。此时数组就完

2014-04-09 16:10:45 6222

原创 算法学习九----在从1到n的正数中1出现的次数

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。要在一个数字中找到1的个数,可以简单地把数字转换成字符串,然后扫描字符串,判断每个字符是否为1,如果为1就把1的个数加1.另一种解法是通过除法和取模判断1的个数。首先,当数字为1位数时,将其除以10取模,然后判断是否

2014-04-09 09:49:45 806

原创 算法学习八----约瑟夫问题

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。经典的算法题目算法思路:采用循环链表的数据结构1、初始当前位置为链表第一个元素2、从当前位置开始,向前移动n-1

2014-04-08 09:51:31 648

原创 算法学习七----在一个字符串中找到第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。  算法思路:此算法的实现在于选择适当的数据结构,可以选择一种叫映射表的数据结构映射表简单地说就是进化的“数组”,但是“数组”的下标可以是任意类型所以可以选择字符与数字的映射表作为数据结构,然后扫描字符串的每一个字符,如果当前字符还没有在映射表中,则添加进去映射表,并将其值设为1

2014-04-07 22:19:17 860

原创 算法学习六----数组中查找两个数,使得它们的和正好是输入的那个数字

题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。算法思路:如果不考虑复杂度,可以用两个循环遍历该数组,第一个循环先拿一个数a出来,然后第二个循环中的

2014-04-06 17:26:55 1200

原创 算法学习五---输出链表中倒数第k个结点

题目:输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针算法思路:定义两个指针p,qZ指向链表头,然后让q向后移k个偏移量,此时p,q相差距离为k,然后再让p,q同时向后移,直到q指向链表尾,此时p的值就是所要求的算法伪代码initialize 2 pointer,let them point to li

2014-04-01 09:41:42 876

空空如也

空空如也

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

TA关注的人

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