自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yates Law的博客

前瞻而不慌张,鸡血而不鲁莽

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

转载 详解wait和waitpid函数

转自:http://blog.csdn.net/kevinhg/article/details/7001719#include <sys/types.h> /* 提供类型pid_t的定义 */#include <sys/wait.h>pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已

2017-06-29 17:52:08 216

原创 线程同步:互斥量与条件变量

互斥量线程的优势主要是能通过全局变量来共享信息,但在多线程程序中,必须要确保多个线程不会同时修改同一变量(临界资源),或者某一线程不会读取正由其他线程修改的变量。当程序以非原子方式访问共享资源有一定概率会发生错误。如下面程序://代码转自Linux_Unix系统编程手册#include <pthread.h>#include "tlpi_hdr.h"static volatile int glo

2017-06-27 21:22:09 310

原创 多线程操作哈希表避免死锁

copy自《UNIX环境高级编程》图11.11。#include <stdlib.h>#include <pthread.h>#define NHASH 29#define HASH(id) (((unsigned long)id)%NHASH)struct foo *fh[NHASH];pthread_mutex_t hashlock = PTHREAD_MUTEX_INITIALIZER;s

2017-06-26 10:55:49 2686

原创 循环有序数组(旋转数组)的最小值

题目:解法1:直接遍历一遍数组得出最小值,时间复杂度O(N),空间复杂度O(1)。但这个方法没有利用到旋转数组的特性。解法2:利用二分查找,时间复杂度O(logN)我们可以注意到旋转之后,以最小值为分界线,左边的数组(不包括最小值)的值总是大于右边的数据(包括最小值)。那么我们可以利用二分查找来实现最小值的查找,方法如下:定义三个指针,p1指向第一个元素,p2指向第二个元素,mid指向数组中间元素

2017-06-25 21:54:10 926

原创 素数与丑数

题目1:给出n中所有素数的个数。:暴力解法每个数i都判断其是否被前面2~i的数整除,如果是不是素数,全部都不能整除,为素数。bool isPrime(int n){ if(n<2) return false; for(int i=2;i<n;i++) { if(n%i==0) return false; } return true;} 解法

2017-06-24 18:45:34 474

原创 滑动窗口的最大值

题目:有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 返回一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值。 以数组为[4,3,5,4,3,3,6,7],w=3为例。因为第一个窗口[4,3,5]的最大值为5,第二个窗口[3,5,4]的最大值为5,第三个窗口[5,4,3]的最大值为5。第四个窗口[4,3,3]的最大值为4。

2017-06-14 19:42:56 239

原创 最长无重复字符子串

题目:基本思想:首先设置一个hash表map <char,int> charposition存放字符串每个字符之前出现的位置和一个变量pre存放s[i-1]结尾情况下,最长的无重复子串的长度。之后不断更新这两个变量的值,更新规则如下:aPos=charposition[A[i]]+1为当前字符可能达到最长无重复子串的最远位置,即两个相同字符之间为当前可能的最长无重复子串的长度。bPos为前一个字

2017-06-12 22:28:31 223

原创 树的子结构和拓扑相同的子树

之前做了剑指offer的“树的子结构”和牛客网算法课“拓扑相同的子树”,发觉这其中还是有些微妙的地方需要注意的,总结如下:树的子结构和树的子树问题:子树的意思是包含了一个结点,就得包含这个结点下的所有节点,一棵大小为n的二叉树有n个子树,就是分别以每个结点为根的子树。子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。 如下图,二叉树2是二叉树1的子树也是子结构,但是二叉树3只是二

2017-06-11 11:25:57 738

原创 数组中重复的数字

第一类:判断数组中是否有重复值,要求空间复杂度为O(1)。基本思想:先把数组排序,设置一个int变量temp等于数组的第一个数A[0],依次遍历整个数组,如果temp不与当前遍历的数A[i]相同,这将A[i]赋值给temp,如果相同,则证明有重复值。排序复杂度为O(nlogn),空间复杂度O(1)。代码:class Checker {public: bool checkDuplicate(

2017-06-08 12:44:13 301

原创 小范围排序(堆排序)

题目: 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定A的大小n和题意中的k,请返回排序后的数组。测试样例: [2,1,4,3,6,5,8,7,10,9],10,2 返回:[1,2,3,4,5,6,7,8,9,10]基本思想: 1. 依题

2017-06-07 23:45:29 398

原创 二叉搜索树的第K个节点

题目:给定一棵二叉搜索树,找出其中的第K大的节点。如该二叉搜索树的第三个大节点是4。基本思路:按中序遍历算法遍历二叉搜索树,利用一个计数器边遍历边计数,知道找到第K大的节点。代码如下:class Solution { int count = 0;public: TreeNode* KthNode(TreeNode* pRoot, unsigned int k) {

2017-06-04 20:39:58 225

原创 TCP的超时与重传

1. 背景与原理超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送某一个数据之后就开启一个计时器,在一定时间内如果没有得到发送的数据包的ACK报文,那么就重新发送数据,直到发送成功为止。2. 往返时延的估计和超时超时间隔长度的设计是超时/重传机制的核心部分,显然,超时间隔必须大于TCP连接的往返时延(RTT),即从一个报文段发出到收到其确认时。超时时间过长会造成网络利用率不高,过短会造

2017-06-03 11:13:51 3722

原创 滑动窗口协议与慢启动

滑动窗口协议:滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输,提高网络吞吐量。(1)发送方不必发送一个全窗口大小的数据。 (2)来自接收方的一个报文段确认数据并把窗口向右边滑动,这是因

2017-06-01 20:44:27 1677

原创 TCP交互数据流之经受时延的ACK和Nagle算法

经受时延的ACK 通常TCP在接收到数据时并不立即发送ACK,相反,它将等待一段时间(如200ms),以期望将ACK与需要沿该方向发送的数据一起发送,这种现象也称为数据捎带ACK。这样做的目的是为了减少发往网络的报文,以提高网络传输效率,节省网络资源。(特别对于广域网)经受时延的ACK工作过程:wireshark工具抓包:经受时延ACK的负面影响:在某些情况下,Delay ACK会带来难以接受的

2017-06-01 17:21:32 1277

mars第一季到第五季源码

mars第一季到第五季源码

2014-02-08

空空如也

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

TA关注的人

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