- 博客(10)
- 资源 (9)
- 收藏
- 关注
原创 从网页输入框获得字符的转码
从网络上接收到的检索词汉字编码是以%开始的十六进制数。而普通的字符还是以ascii码的形式。所以就牵扯到了转码问题,正好我目前所需要的编码方式跟获得的字符串中十六进制对应,所以我的转码就简单多了。 代码:#include #include #include void main(){ char *p="abcd%BB%D8%BC%D2ab%BB%D8%BC%D2";
2013-03-27 17:15:46 1003
原创 倒排索引--二叉树
这两天写了一个索引的建立与搜索过程,目前是对13M的数据进行了测试,整个过程只用了不到6s,这个数字是值得庆祝的。算是一个比较快的算法了。在此要感谢wang sir和xu sir的支持。对这两位表示由衷的感谢。整个算法过程对文件中每个字符进行了一次遍历,对每次得到的字符进行建立二叉树(综合考虑,二叉树还是最好的一个数据结构),并且统计总共有多少个字符和每个字符出现的次数,存放在一个数组中,还对
2013-03-20 17:41:49 1732
原创 读取中英文混搭的文件
中英文编码方式不一样,中文是由两个字节组成的字符,而英文是由一个字节组成,而且该字节的首位为0,而如果是中文,中文编码的第一个字节首位是1.这就是最主要的区别。根据这个就可以对中英文混搭的文件进行读取。就是根据你读到的第一个字节是否小于0.下边是一段自己编写的一小段代码,不登大雅之堂,只为抛砖引玉。忘高人指导赐教:#include void main(){ FILE *stream;
2013-03-15 14:47:57 1604
原创 对大数据量进行排序--位图法
题目:对2G的数据量进行排序,这是基本要求。数据:1、每个数据不大于8亿;2、数据类型位int;3、每个数据最多重复一次。内存:最多用200M的内存进行操作。我听过很多种类似问题的解法,有的是内存多次利用,有的用到了外存,我觉得这两种做法都不是比较好的思想,太慢。由于这个题目看起来没有对效率进行约束,所以这两种方法也是对的,但是我这次提出一个比较好的算法来解答此题,如果有更好的做法请赶
2013-03-15 09:23:33 3587
原创 比较有意思的问题
1、不使用if else判断两个数的大小;(a*a/b+b*b/a)/(a/b+b/a)2、不使用sizeof判断一个变量的所占的字节数;3、不使用printf只用putchar输出int型的数据;。。。。后续增加中。。。。
2013-03-09 15:05:30 653
转载 关于链表的一些面试题
题一、给定单链表,检测是否有环。 使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。http://ostermiller.org/find_loop_singly_linked_list.html这篇文章讲了很多好的坏得相关算法。题二、 给定两个
2013-03-06 15:19:32 876
转载 sscanf的高级用法
sscanf函数的高级用法sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。函数原型:int sscanf( const char *format [,argument]... );其中的format可以是一个或多个:{%[*][width][{h|l|I64|L}]type|' '|'\t'|'\n'|非%符号},
2013-03-05 16:04:02 836 2
转载 传输控制协议TCP
6.3 TCP的数据编码与确认 TCP协议采用了许多与数据链路层类似的机制来保证可靠的数据传输,如采用序列号、确认、滑动窗口协议等。只不过TCP协议的目的是为了实现端到端结点之间的可靠数据传输,而数据链路层协议则为了实现相邻结点之间的可靠数据传输。 首先,TCP要为所发送的每一个报文段加上序列号,保证每一个报文段能被接收方接收,并只被正确地接收一次。
2013-03-01 19:21:07 7028 1
原创 不使用sizeof 判断一个数据所占的内存大小
这个是我在笔试一家全英文笔试题的时候,绞尽脑汁才看懂的一个题目。猛的一看这是一个比较DT的问题,一般我们看到关于测一个变量的内存大小就会想到sizeof,但是这次就是不让用sizeof了。就需要发掘新的想法。当初在学习平台那一块知识的时候,讲到bootloader源码的时候似乎提到过一个想法,就是可以使用内存加1后的相减,得出该变量的实际内存大小。而后来我也在网上看到了一个类似的解答。
2013-03-01 16:41:11 1528
原创 判断一个系统的大小端函数
小端:低地址存放地位数据;大端:低地址存放高位数据;而网络中传输是用大端。用代码实现大小端利用了共用体的原理实现判断是比较简单的一个方法:#include union n{ int a; char b;};int main(){ union n ss; ss.a=1; if(ss.b!=0) printf("Little\n"); else
2013-03-01 16:28:08 6965 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人