9 petershina

尚未进行身份认证

123

等级
TA的排名 1w+

图文详解Radix树

基数树对于长整型数据的映射,如何解决Hash冲突和Hash表大小的设计是一个很头疼的问题。radix树就是针对这种稀疏的长整型数据查找,能快速且节省空间地完成映射。借助于Radix树,我们可以实现对于长整型数据类型的路由。利用radix树可以根据一个长整型(比如一个长ID)快速查找到其对应的对象指针。这比用hash映射来的简单,也更节省空间,使用hash映射hash函数难以设计,不

2016-11-23 22:49:55

工作几年的感悟

12年毕业之后,到现在刚好满4年,期间在两个公司待过。第一家是安防的龙头老大,刚毕业什么都不懂,各种看书学习、做任务、加班。慢慢的对linux、网络技术有了入门,安防行业也慢慢熟悉。不知不觉三年过去了,经历了憧憬期、倦怠期、适应期。由于对第一家薪资的不满,果断跳槽了。由于在第一家做网络方面,找第二份工作的时候一门心思想去专业做网络的公司,就去了H公司,现在在这家公司工作刚好满一年。  两家公司

2016-06-15 22:24:42

epoll详解和使用

什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epoll的相关

2016-01-31 15:42:27

#pragma pack(n) 的作用

在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。例如,下面的结构各成员空间分配情况: struct test {

2015-06-30 21:41:00

代码常见的错误

1.返回值没有判断,尤其是返回指针是否为NULL2.入参没有检查3.入参检查之前先对其进行赋值了4.入参检查出错之后,打印该值5.入参检查出错之后,没有返回错误,继续执行6.复制的时候自己复制给自己了7.数组越界8.调用snprintf函数的时候,对应长度没有给对,没有减去已经赋值的长度9.拷贝字符串的时候,没有预留结束符10.参数没有初始化11.内存、句柄

2015-05-19 15:59:42

两个数据库文件对比

如下图所示,函数首先打开两个数据库,然后获取两个数据库的版本信息。根据数据库各个表名称来打开相应的表,然后判断两个表的具体内容是否相同,如果不同的话则打印出该表名,如果用户选择打印具体内容的话,则分别打印两个表的具体内容(由于表的内容可能会比较多,且查看单个表内容的话使用SQLite软件看更直观,所以这个功能默认关闭)。   #include #include #inclu

2015-05-06 14:00:49

内存空间分几部分:代码段、数据段,栈,堆

转自:http://blog.csdn.net/yeyuangen/article/details/67665671.函数代码存放在代码段。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间。全局变量或静态变量,放在数据段,局部变量放在栈中,用new产生的对象放在堆中,内存分为4段,栈区,堆区,代码区,全局变量区BSS段:BSS段(bss se

2015-04-22 17:44:55

TCP的状态迁移

TCP正常建立和关闭的状态变化TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做 四次握手。建立连接在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn

2015-04-17 09:18:31

大数的阶乘算法

用data数组来存放阶乘的每一位数字,首先令第一位的数值为1,位数为1,然后将每次相乘的乘积存回数组,并循环处理每个数组中超过10的数,若数值超过10,则需要进位,将位数加1,原来的数除以10,商数加前一位数的数值后存回前一位数的数组中,再将余数存回原来位数的数组中。例如求5!的值步骤一:1!=1位数1数组内容0      0      0      1步骤二:2!=2

2015-04-16 09:08:24

冒泡法排序和选择法排序

冒泡法排序每次比较i前面的数组,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样i前面的数组经过一次次相邻交换,顺序就变成从小到大或从大到小排列。#include /*冒泡法排序*/void sort1(int *digits, int nums){ int i = 0, j = 0, k = 0; int tmp_digit = 0; if(NULL ==

2015-04-12 16:17:30

插入法排序(含二分法)

插入法排序和冒泡法排序类似,只不过冒泡法排序是每次循环获取i之后最小(大)的值到数组前排,而插入法排序算法是每次对i前面的数组进行从小到大(从大到小)排序。1.插入排序, 从第二个数开始,先将第二个数做一个副本放在一旁(变量中)。2.第二个数同前一个数比较,小于则用前一个数覆盖第二个数, 然后将副本放在前一个数前面3.再将第三个数做一个副本取出,第三个数同前一个数比较,小于则用前一

2015-04-12 15:55:00

快速排序法

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序

2015-04-12 15:34:30

串操作

#include #include #include #include "string_lib.h"/*拷贝src到dst,dst[0]为src长度*/int str_assign(STRING *dst, char *src){ int i = 0;  if(NULL == src) {  return -1; } if(dst.string

2015-04-10 14:47:23

双向链表

#include #include struct data{ int link_value;};struct link_node{ struct link_node *p_pre_link; struct link_node *p_next_link; struct data value;};struct link_node *create_node(struct d

2015-04-10 14:46:25

时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或

2015-04-10 09:33:42

<学会提问——批判性思维指南>总结笔记

0.前言    我们不希望自己的行为仅仅建立在别人的评价的基础上,不希望自己是公众的傀儡。(所以我们应当学习掌握批判性思维)    1.提出正确问题的益处    1.1 批判性思维涉及:1)意识到一些彼此相关的批判性问题;2)能够在适当的时机提出和回答批判性问题;3)愿意主动运用批判性问题。  1.2 思维的两种风格:1)海绵式思维(强调知识的获得);2)淘金式思维(强

2015-04-08 10:25:48

KMP算法

转载于:http://blog.csdn.net/v_july_v/article/details/7041827作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。1. 引言    本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下

2015-04-07 14:23:41

RTP协议全解(H264码流和PS流)

写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/392073051、RT

2015-02-09 15:57:25

简单实现traceroute功能

摘要 本文描述RTP(real-time transport protocol),实时传输协议。RTP在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。数据传输功能由一个控制协议(RTCP)来扩展,通过扩展,可以用一种方式对数据传输进行监测控

2015-02-05 15:57:19

ortp库入门

我们知道, RTP(Real-timeTransportProtocol)是用于Internet上针对多媒体数据流的一种传输协议,做流媒体传输方面的应用离不开RTP协议的实现及使用,为了更加快速地在项目中应用RTP协议实现流媒体的传输,我们一般会选择使用一些RTP库,例如使用c++语言编写的JRTPLIB库,网上关于RTP协议以及JRTPLIB库的介绍已经很多了,在此我也不再赘述,文本主要介绍实现

2015-02-04 15:06:08

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!