7 feiqiangs

尚未进行身份认证

暂无相关描述

等级
TA的排名 7w+

dpdk 在VMware 中的安装部署

dpdk简介dpdk是intel提供的提升数据面报文处理速率的应用程序开发包,它只要是利用一下几个特点优化报文处理过程,从而加快报文处理速度:1、用大页缓存支持来提高内存访问速率。2、利用UIO支持,提供应用空间下驱动程序的支持,也就是说驱动程序运行在用户空间的,减少了报文在用户空间和应用空间的多次拷贝。3、利用Linux亲和性支持,把控制面的线程及各个数据面线程绑定到不同的c

2016-11-20 17:33:32

从大小为N的样本集中随机采集不同的K个样本

这类为题可以抽象为随机生成K个1~N之间不同的整数。解决思路:a,选中第1个元素,将其与n个元素中的任意一个交换(包括第1个元素自己)。这时排序后的第1个元素已经确定。b,选中第2个元素,将其与n-1个元素中作任意一个交换(包括第2个元素自己)。c,重复上面步骤K次实现代码:#include#include#include#includeu

2016-10-28 18:07:37

归并排序的递归和非递归实现

归并排序是一个时间复杂度为O(nlogn)的算法,它可以由递归和非递归两种方式实现。递归:#includeusingnamespacestd;voidcombine(int*nums,intl,intm,intr){//cout<<"combine"<<l<<""<<m<<""<<r<<endl;intlen=r-l+1;int*t

2016-10-27 18:44:21

蓄水池采样

问题描述:现实生活中有很多流式数据,在流式数据上采样可以抽象为:设几个中元素个数为N,并且N在不断的增大,如何在集合中采集K个样本,使得每个样本被采集到的概率相等(K/N)?蓄水池抽样法:算法思路是,先构造一个可以放K个元素的池子,池子中一开始放元素1~k。对于K+1~N以K/N的概率决定是否被替换到池子中,遍历完所有元素后就可以得到一个等概率采样的K个元素,时间复杂度是O(

2016-10-27 17:31:18

c++互斥锁

摘要:从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁,对互斥量进行加锁以后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥量.如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变量为运行状态的线程可以对互斥量加锁,其他线程将会看到互斥锁依然被锁住,只能回去再次等待它重新变为可用    在

2016-10-09 10:30:04

C++多进程信号量

问题:一个父进程一个子进程,要求父进程与子进程同步:必须子进程先执行,父进程后执行。解决办法:用信号量机制,一开始信号量初始化为0父进程:非临界区 p(s)临界区v(s)非临界区子进程:非临界区v(s)非临界区这样父进程执行临界区代码之前要先p操作,但是信号量是0,因此父进程被阻塞。直到子进程执行了v操作添加一个信号量,这时候父进程才

2016-10-07 22:09:37

C++ I/O复用实现聊天室程序

今天学习了Linux高性能服务器变成中的I/O复用,根据书上的内容,实现一个聊天室程序。1.客户端,客户端程序用poll同事坚挺用户输入和网络连接,并用splice函数将用户输入直接定向到网络连接上发送,从而实现数据零拷贝。#define_GNU_SOURCE1#include#include#include#include#include#include

2016-10-07 01:33:54

C++中static的作用总结

主要有以下作用:【1】在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访问空间,因此访问到的是上次调

2016-09-23 11:31:04

C语言实现多态

综述多态性是面向对象程序设计的一个重要特征,利用多态性可以设计和实现一个易于扩展的系统。顾名思义,多态的意思是多种形态,在C++程序设计中,多态指的是:具有不同功能的函数可以用同一个函数名,这样可以用一个函数名调用不同内容的函数。C++的多态分两种:静态多态性和动态多态性。1.C++中的函数重载和运算符重载实现的多态性就属于静态多态,在程序编译时系统就能决定调用的是哪个函数,因此

2016-09-23 01:53:38

数据流的中位数

题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。解题思路:将数字放入两个堆,一个小堆min_h一个大堆max_h大堆存放的是数组中最小的一半数据,小堆存放着数组中最大的一半数据。那么小堆的堆顶和大堆的堆顶就是构造中位数的关键数字: 如果大堆数

2016-09-18 02:29:42

序列化二叉树

问题:实现两个函数,序列化一个二叉树。如果之前做过一个题目:用一颗二叉树的中序和前序还原二叉树的话,最直观的解法是用把二叉树系列化成一个中序序列和一个前序序列,但是这个方法的缺陷是每个节点上的值不能相同,而且需要将整个序列都读入之后才能序列化,如果序列到一个流中,在从流中读出来还原二叉树效率将会比较低。其实序列化的时候只需要前序就可以了,只是遍历到每个NULL指针的时候对应的序列

2016-09-17 23:10:44

正则表达式匹配

题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。1.如果pattern下一位是*:  1.1如果pattern当前位和str当

2016-09-17 15:35:49

正整数的和

题目:输入一个正整数s打印出s的连续正整数合(至少含有两个数字)如15,由于1+2+3+4+5=4+5+6=7+8=15所以结果是{1,2,3,4,5}{4,5,6}{7,8}设两个数smallbig,求从small到big连续正整数的和,如果和正好是目标值,则找到一个解,否则:1.如果当前和大于目标值,则small++,2.如果小于目标值则big++.

2016-09-16 21:32:23

数组中的逆序对

问题:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。即输出P%1000000007 思路:最简单的思路是遍历数组,把当前数组元素和它后面的相比较,如果是逆序对,则计数器加1.时间复杂度是o(n^2),还有一个利用归并排序思想的方法时间复杂度是O(nlogn).下面是我用

2016-09-16 18:22:45

把数组排成最小数

题目:输入一个正数数组,把数组中所有的数字拼接起来排成一个数,打印能排列出来的数的最小的那一个例如输入{3,32,321}输出的应该是321323这个题目的直观做法是先求出所有可能的排列,然后找到最小的那个。但是n个数字的排列有n!个,时间复杂度太高。同时应该注意,如果直接将输出类型定义为int类型的话,如果数组中的值比较大,加合完之后的值可能会超出int类型,因此最好用string

2016-09-16 12:42:12

字符串的所有排列

输入一个字符串,打印出该字符串的所有排列,例如输入字符串abc,则打印出a,b,c所能排列出来的所有字符串abc,acd,bac,bca,cab,cba。看似简单,其实不是很好做,应该把问题分解为子问题,我们把字符串看成两个部分,首字母自己作为一部分,后面的其他节点当做其它部分。可以看成两部走:求出所有课程出现在第一位的字符a和后面的bc交换。第二步:固定第一个字符,求后面所有

2016-09-15 22:05:15

求不相邻的最大子数组和

问题1:给出一个数组,求出其中一个子集,使得子集中每个元素在原数组中两两都不相邻并使子集的和最大。解法:对任意一个元素ai,有两种可能:选ai,单选了ai就不能选ai-1;不选ai那么ai-1可以选也可以不选,主要根据ai-2的情况,因此动态规划是这样设计的。 ds[i]表示选i,a0....ai的最大子数组和;ns[i]表示不选择i,a0....ai的最大子数组

2016-09-14 22:32:59

旋转数组的最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的的数组的旋转,输出旋转数组的最小元素,如{3,4,5,1,2}位{1,2,3,4,5}的数组旋转。最小值是1思路:用二分查找法#include#include#include#include#includeusingnamespacestd;/***Definition

2016-09-13 17:29:08

前序序列和中序序列还原树

题目:输入某二叉树前序中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中不包含重复数字。例如输入前序遍历{1,2,4,7,5,6,8}和中序遍历{4,7,2,1,5,3,8,6}以下是我用c++的实现#include#include#include#include#includeusingnamespacestd;/***Definition

2016-09-13 15:24:51

二维数组中的查找

在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的排列,请完成一个函数,输入这样的二维数组和一个整数,判断数组中是否有该整数,如果有返回true,没有返回false#include#include#includeusingnamespacestd;boolfunc(intnums[][10],intval,introw_len,int

2016-09-12 23:50:59

查看更多

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