- 博客(17)
- 资源 (17)
- 收藏
- 关注
原创 找出一堆数里面出现次数最多或最多的前N个数字
描叙:一大推数据里面,数字与数字之间用空格隔开,找出出现次数最多的前N个。#当数字之间的空格只有一个的时候#sed 's/ /\n/g' data.txt | sort | uniq -c | sort -k1n -k2n | tail -10 > result.txt #存在的问题,当出现次数为第10的时候,与该次数可能有多个?#解决方案:按照降序排列,找出第10行,并且
2012-04-26 15:44:50 5875 1
转载 static_cast、dynamic_cast reinterpret_cast和const_强制类型转换
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。
2012-04-24 15:55:02 826
原创 TCP 滑动窗口协议详解
什么是滑动窗口协议? 一图胜千言,看下面的图。简单解释下,发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面图中的4,5,6号数据帧已经被发送出去,但是未收到关联的ACK,7,8,9帧则是等待发送。可以看出发送端的窗口大小为6,这是由接受端告知的(事实上必
2012-04-21 21:15:00 1783
原创 hashmap详解
标准std中中的map,是使用平衡二叉树实现的,查找和添加的复杂度都为O(log(n)), 标准std中中的hashmap,是使用hashtable实现的,查找和添加的复杂度都为O(1), gnu c++提供了hash_map,是一个hash map的实现,查找和添加复杂 度均为O(1)。 #include #ifdef __GNUC__#include #else#
2012-04-19 15:38:06 2270
转载 两个或N个字符串最大公共子串算法
在版里看到有人问最大公共字串的问题,自己学习后在这里将总结发出来。最大公共字串分为两类,一类是我们大家所熟知的两个字符串的最大公共子串,另一个是我在搜索中发现的就是N个字符串的最大公共字串问题。首先来看两个字符串的最大公共字串问题。这里我列出了两种解法,第一种就是暴力解法,第二种是动态规划来解的。还有一种解法就是我们数据结构书上会降到的KMP匹配算法,这里我没给出。 第一种:暴
2012-04-18 15:14:56 1823
原创 bit位的设置和清零
实现设置和清零一个数的某一位:#include using namespace std;#define JudgeBit(BitPos) (0x00000001<<BitPos)templateclass CBitVector32{ public: CBitVector32(){ } CBitVector32(T nData):m_nData(nData){ }
2012-04-12 21:43:59 3965
原创 string类的实现
实现string类的构造函数,析构函数和赋值函数#include using namespace std;class String{public: //普通构造函数 String(const char *str = NULL); //拷贝构造函数 String(const String &other); //赋值构造函数 String & operator =
2012-04-12 15:45:35 1020
原创 智能指针以及智能指针类
一 智能指针的原理及实现当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同
2012-04-10 19:01:21 1503
原创 static关键字的详解
一 面向过程程序设计1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1 #include void fn(); static int n; //定义静态全局变量 void main() { n=20; cout<<n<<endl; fn(); }
2012-04-10 14:54:55 1169
原创 结构体中四字节对齐的详解
一 四字节对齐的规则C++中结构体变量的存储为什么有个4字节对齐的规则,这里是假设32位机器上,CPU在读取内存数据的时候4字节对齐会取得更快的速度;这是因为:1字节8位,4字节正好32位,而32位机器的寄存器,地址什么的都是32位的,正好一次处理就完成。二 相关内容解释例如,下面的结构各成员空间分配情况:struct test{ char x1;
2012-04-10 13:39:20 5620
转载 iframe用法精析
Html代码 iframe frameborder=0 width=170 height=100 marginheight=0 marginwidth=0 scrolling=no src="move-ad.htm">iframe> 用于设置文本或图形的浮动图文框或容器。 BORDER 设定围绕图文框的边缘宽度 FRAMEBODER
2012-04-09 21:11:08 1051
转载 PHP开发程序:生成随机字符串的方法
使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考。方法一:1、在 33 – 126 中生成一个随机整数,如 35,2、将 35 转换成对应的ASCII码字符,如 35 对应 #3、重复以上 1、2 步骤 n 次,连接成
2012-04-09 13:11:57 687
原创 排序方法及其稳定性分析
首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就 是这样,先按低位
2012-04-09 12:45:10 796
转载 32位与64位操作系统的区别
简单的说x86代表32位操作系统 x64代表64位操作系统。如果你的CPU是双核以上,那肯定支持64位操作系统了。如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好,Vista也好,最大都只支持3.25G的内存。而64位的windows 7最大将支持128G的内存。 64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。
2012-04-09 12:40:19 1399
原创 TCP/IP的time_wait状态详解
Socket中的TIME_WAIT状态在高并发短连接的server端,当server处理完client的请求后立刻closesocket此时会出现time_wait状态然后如果client再并发2000个连接,此时部分连接就连接不上了,用linger强制关闭可以解决此问题,但是linger会导致数据丢失,linger值为0时是强制关闭,无论并发多少多能正常连接上,如果非0会发生部分
2012-04-07 21:33:03 10200 2
原创 crontab及每15分钟同步服务器的时间
crontab 名称 : crontab 使用权限 : root用户和crontab文件的所有者 语法 : crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ] 说明 : crontab 是用来让使用者在固定时间或固定间
2012-04-07 20:58:02 25067
原创 大数的阶乘
大数的阶乘/*时间限制:3000 ms | 内存限制:65535 KB难度:3描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数m(0<m<=5000) 输出 输出m的阶乘,并在输出结束之后输入一个换行符 样例输入 50样例输出 304140932017133780436126081660647688443
2012-04-07 19:09:08 1673
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人