- 博客(24)
- 资源 (24)
- 收藏
- 关注
转载 小结两种在Python中导入C语言扩展库的方法
一种是Python文档的推荐方案,采用C API扩展写法:在D:建一个add.c文件,输入[cpp] view plaincopy//add.c // #include ; static PyObject* add(PyObject *self, PyObject *args); //一定声明
2015-05-29 16:35:30 1653
转载 Python自定义函数的创建、调用和函数的参数详解
这篇文章主要介绍了Python自定义函数的创建、调用和函数的参数、变量作用域等常见问题,需要的朋友可以参考下函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创见函数,这被叫做用户自定义函数。一、定义一个函数你可以定义一个由自己想要功能的函
2015-05-29 15:57:07 2484
转载 Python中函数的参数定义和可变参数
刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解。其实只要把函数参数定义搞清楚了,就不难理解了。先说说函数定义,我们都知道,下面的代码定义了一个函数funcAdef funcA(): pass 显然,函数funcA没有参数(同时啥也不干:D)。下面这个函数fun
2015-05-29 15:52:00 345
转载 openMP的一点使用经验
最近在看多核编程。简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生。按照我的理解,多核编程可以认为是对多线程编程做了一定程度的抽象,提供一些简单的API,使得用户不必花费太多精力来了解多线程的底层知识,从而提高编程效率。这两天关注的多核编程的工具包括openMP和TBB。按照目前网上的讨论,
2015-05-26 15:53:00 442
转载 pthread_barrier_init,pthread_barrier_wait简介
pthread_barrier 系列函数在中定义,用于多线程的同步,它包含三个函数: --pthread_barrier_init() --pthread_barrier_wait() --pthread_barrier_destroy()那么pthread_barrier_*是用来做什么的?这三个函数又怎么配合使用呢?
2015-05-26 14:16:17 365
转载 【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)
接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。1234567n=0;for(i=1;i{
2015-05-18 13:36:21 938
转载 【啊哈!算法】算法11:堆——神奇的优先队列(上)
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。那这一特性究竟有什么用呢? 假如有14个数分别是9
2015-05-18 13:34:29 970
转载 【坐在马桶上看算法】算法10:二叉树
二叉树是一种特殊的树。二叉树的特点是每个结点最多有两个儿子,左边的叫做左儿子,右边的叫做右儿子,或者说每个结点最多有两棵子树。更加严格的递归定义是:二叉树要么为空,要么由根结点、左子树和右子树组成,而左子树和右子树分别是一棵二叉树。 下面这棵树就是一棵二叉树。 二叉树的使用范围最广,一棵多叉树也可以转化为二叉树,因此我们将着重讲解二叉树。二叉树中还有连两种特殊的
2015-05-18 13:33:16 457
转载 【坐在马桶上看算法】算法9:开启“树”之旅
我们先来看一个例子。 这是什么?是一个图?不对,确切的说这是一棵树。这哪里像树呢?不要着急我们来变换一下。 是不是很像一棵倒挂的树,也就是说它是根朝上,而叶子朝下的。不像?哈哈,看完下面这幅图你就会觉得像啦。 你可能会问:树和图有什么区别?这个称之为树的东西貌似和无向
2015-05-18 13:32:46 82
转载 【坐在马桶上看算法】算法8:巧妙的邻接表(数组实现)
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。1234564 51 4 94 3 81 2 52 4 61
2015-05-18 13:31:20 654
转载 【坐在马桶上看算法】算法7:Dijkstra最短路算法
上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”。本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。 与Floyd-Warshall算法一样这里仍然使用二维数组e来存储顶点之间边的关系,初始值如下。
2015-05-18 13:29:09 493
转载 【坐在马桶上看算法】算法6:只有五行的Floyd最短路算法
暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。 上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最短路程,也就是求任意两个点之间的最短路径。这个问题这也被称为“多源最短路径”问题
2015-05-18 13:28:21 477
转载 【坐在马桶上看算法】算法5:解密回文——栈
上一节中我们学习了队列,它是一种先进先出的数据结构。还有一种是后进先出的数据结构它叫做栈。栈限定只能在一端进行插入和删除操作。比如说有一个小桶,小桶的直径只能放一个小球,我们现在向小桶内依次放入2号、1号、3号小球。假如你现在需要拿出2号小球,那就必须先将3号小球拿出,再拿出1号小球,最后才能将2号小球拿出来。在刚才取小球的过程中,我们最先放进去的小球最后才能拿出来,而最后放进去的小球却可以最先拿
2015-05-15 17:26:37 421
转载 【坐在马桶上看算法】算法4:队列——解密QQ号
新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这串数的末尾,再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一
2015-05-15 17:19:10 687
转载 【坐在马桶上看算法】算法3:最常用的排序——快速排序
上一节的冒泡排序可以说是我们学习第一个真正的排序算法,并且解决了桶排序浪费空间的问题,但在算法的执行效率上却牺牲了很多,它的时间复杂度达到了O(N2)。假如我们的计算机每秒钟可以运行10亿次,那么对1亿个数进行排序,桶排序则只需要0.1秒,而冒泡排序则需要1千万秒,达到115天之久,是不是很吓人。那有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。
2015-05-15 17:07:40 101
转载 【坐在马桶上看算法】算法2:邻居好说话:冒泡排序
简化版的桶排序不仅仅有上一节所遗留的问题,更要命的是:它非常浪费空间!例如需要排序数的范围是0~2100000000之间,那你则需要申请2100000001个变量,也就是说要写成int a[2100000001]。因为我们需要用2100000001个“桶”来存储0~2100000000之间每一个数出现的次数。即便只给你5个数进行排序(例如这5个数是1,1912345678,2100000000,1
2015-05-15 17:03:29 495
转载 【啊哈!算法】最快最简单的排序——桶排序
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ahalei.blog.51cto.com/4767671/1362789最快最简单的排序——桶排序 在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照
2015-05-15 16:50:15 498
转载 在linux内核中修改TCP MSS值
MTU: Maxitum Transmission Unit 最大传输单元MSS: Maxitum Segment Size 最大分段大小MSS最大传输大小的缩写,是TCP协议里面的一个概念。MSS就是 TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往 往用MTU值代替(需要减去IP
2015-05-07 16:33:12 994
转载 TCP 的那些事儿(下)
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计
2015-05-07 16:20:45 764
转载 TCP 的那些事儿(上)
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查
2015-05-07 16:19:37 380
转载 高流量大并发Linux TCP 性能调优
呃……标题比较隐晦。其实主要是手里面的跑openvpn服务器。因为并没有明文禁p2p(哎……想想那么多流量好像不跑点p2p也跑不完),所以造成有的时候如果有比较多人跑BT的话,会造成VPN速度急剧下降。本文参考文章为:优化Linux下的内核TCP参数来提高服务器负载能力Linux Tuning本文所面对的情况为:高并发数高延迟高丢包(典型的美国服务器)值得注意的
2015-05-07 16:15:55 3269
转载 DHCPSnooping原理
DHCP Snooping开启DHCPSnooping,设置路由端口(信任端口)SW建立一张DHCP监听绑定表(DHCPsnooping Binding)。一旦一个连接在非信任端口的客户端获得一个合法的DHCP Offer,交换机就会自动在DHCP监听绑定表里添加一个绑定条目,内容包括了该非信任端口的客户端IP地址、MAC地址、端口号、VLAN编号、租期等信息DHCP
2015-05-07 13:49:23 1056
转载 TCP SYN洪泛攻击的原理及防御方法
尽管这种攻击已经出现了十四年,但它的变种至今仍能看到。虽然能有效对抗SYN洪泛的技术已经存在,但是没有对于TCP实现的一个标准的补救方法出现。你可以在如今的操作系统和设备中找到保护应用层和网络层的不同解决方案的不同实现。本篇论文详细描述这种攻击并展望和评估现在应用于终端主机和网络设备的对抗SYN洪泛方法。1 基本的漏洞SYN洪泛攻击首次出现在1996年。当时Phrack杂志中描述了这种
2015-05-05 12:23:13 3233
转载 时间戳引起的网站访问不了的问题
针对有些用户能ping通我们的网站,但是连接时超时服务器没有任何响应,怀疑问题处在了了http的三次握手环节,这是决定通过抓包进行分析:1、有问题机器的截图:2、正常机器的截图:3、发现问题从抓包数据发现,web服务器对出问题机器和正常机器系统的tcp syn包都返回ACK包,但存在问题发出的tcp syn包有时候响应,有时候不响应。不响应时,终端与web服务器之间
2015-05-05 12:22:17 787
Oran V0.8规范文档
2022-04-12
confd-basic-7.6.linux.x86_64
2022-03-31
IEEE-802.11i
2014-12-24
ipv6相关文档
2014-12-24
Ethernet vendor codes and well-known MAC addresses
2014-11-05
C++ Hackers Guide.pdf
2010-12-10
ebtables-iptables interaction on a Linux-based bridge.mht
2010-12-10
深入浅出MFC.pdf
2008-11-21
在 C/C++ 中调用 Java
2008-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人