- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 sizeof 操作符
这是一个西山居的笔试题一、sizeof属于C++内置函数?不对,它应该属于一个操作符,在编译期间计算好的。MSDN中这样描述:The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This
2012-05-28 16:13:09 777
原创 字符串相关算法
一、概述字符串的处理几乎无处不在,算法的形式各种各样,各种巧妙的算法都有一个共同的特点-抓住问题的特点,一些智力题目也是,跟蜡烛相关的题很可能会用到蜡烛可以两头同时点燃,跟灯泡相关的,会用到灯开时间长了会发热等各种隐含的特点。推广到字符串,字符串有什么特点?1. 由固定数目的字符组成即使加上各种奇形怪状的符号,最大也不会超过256个。0~31及127(共33个)是控制字符或通信专用字符
2012-05-25 19:44:40 5343 2
原创 C++对象内存分析
一、问题的引出对C++模型的认识可以从本质上提高对语言和各种机制的理解,如果对底层机制一无所知,那么很多高级的机制都只能通过死记硬背的方式来运用,而且有时候有错误,也很难找出原因。C++相对与C语言,编译器做了很多的对程序员透明的事情,而很多错误也是由于这些不透明所引起的。所以研究这个问题是很有必要的。 二、引起问题的原因或者说是使问题复杂的原因,那些使得内存分配超乎想象的原因。大
2012-05-24 17:00:02 3019 1
原创 高效的服务器程序
更一般的来说,是对每秒要处理大量请求程序的一种性能讨论。优化性能方法不可能说尽,也要具体问题具体分析,只是总结下常用的几点。http://blog.sina.com.cn/s/blog_466c66400100bi2n.html~type=v5_one&label=rela_prevarticle这篇博客提出了好多方法,但是感觉分类上有点不妥,大概从三方面来分的一是节约cpu, 二是如何使用内
2012-05-17 22:09:41 3297 1
原创 epoll和select区别
先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法一、问题引出 联系区别问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解决方案有以下几种:1.使用多进程或者多线程,但是这种方法会造成程序的复杂,而且对与进程与线程的创建维护也需要
2012-05-16 21:38:44 64174 7
原创 图的小结
对于图这种数据结构,可以从五个维度来理解:表示方法,搜索算法,最小生成树,最短路径,最大流。一、表示方法邻接表和邻接矩阵通常采用邻接表(Adj)的方法,因为这种方法表示稀疏图(|E|远小于|V|2的图)比较紧凑,所需的存储空间为O(v+E),不足之处在于要确定某一边(u ,v)是否存在只能在顶点u的邻接表Adj[u]中来搜索v。二、搜索算法广度优先搜索和深度优先搜索广度优先
2012-05-14 21:21:25 1313
原创 排列和组合问题
回溯法是一种深度优先搜索空间树的算法,算法基本分成两个部分试探部分和回溯部分,试探部分当满足除规模外的全部条件时扩大规模,回溯部分回溯条件有两个,当问题不是合法解和求完一个解要求下一个解的时候都要回溯。典型问题就是求组合数的问题。一般的递归在调用完了自身之后不会有动作了,而回溯不同,他在调用完了自身还是有动作的,一般是个循环,在循环中有可能不停的调用自身。对于全排列问题,用递归算法相对比较简单
2012-05-09 20:07:57 695
原创 线程(一)线程的锁与同步
1.如何避免死锁当两个线程需要两个互斥量,如线程一锁住互斥量A需要互斥量B,但线程二锁住互斥量B需要互斥量A,那么就会发生死锁。解决方法1)控制互斥量的枷锁顺序,即不上上述情况发生。2)如果程序复杂,那么可以尝试先施放当前锁,过一段时间在试试。可用pthread_mutex_trylock函数,此函数当锁一个互斥量不成功的时候会立即的返回,而不会像pthread_mutext_lock一样阻塞
2012-05-09 20:06:38 844
原创 基本排序算法总结
1.插入排序(insertion_sort)O(n2)对少量数据排序很有效,不需要额外的存储空间。待排序列已经是从小到大,最坏就是逆序的时候了。且是稳定的。#include #include int exchange(int *a, int i, int j);int insert(int *a, int s, int e);int main(int argc, c
2012-05-09 20:05:05 764
原创 trie树
A trie, or prefix tree, is an ordered tree data structure that is used to store an associative array where the keys are usually strings.The term trie comes from retrieval.(检索的意思)它有3个基本性质:1.根节点不包
2012-05-09 16:25:11 835
原创 TCP/IP学习(一)基本概念
学习TCP/IP的总结~1.为什么要分链路层,网络层,运输层,应用层这四层主要依据是各层的功能,链路层主要负责处理物理接口的细节,网络层处理分组在网络中的活动(IP到IP,尽可能快但不可靠),运输层主要提供应用程序端到端的服务(端口到端口,并且可靠),应用层处理特定的应用程序细节。链路协议主要有ARP和RARP,网络层协议主要有ICMP,IGMP和IP协议,运输层协议主要有TCP和UD
2012-05-09 13:58:33 1696 1
原创 2012年百度实习生笔试题
12年百度笔试题目南京,报的机器学习的岗位,最后一个题没看懂。。只记下这5个题,和网上找到的研发类的最后一个题1.简答题,给出一个单词,找出这个单词所有的变位词。例如army,mary就是一组变位词,pots stop tops这三个是一组变位词。要求:写出用到的数据结构,查询流程。2.简答题,线程和进程的区别,简述什么是“线程安全”。3.简答题,c和c++如何动态分配和释放内存,
2012-05-09 09:36:49 2401
原创 论坛设计
问题的引出一个简单的论坛系统,以数据库储存如下数据: 用户名,email,主页,电话,联系地址,发帖标题,发帖内容,回复标题,回复内容。 每天论坛访问量300万左右,更新帖子10万左右。 请给出数据库表结构设计,并结合范式简要说明设计思路。只是对问题的一点总结和自己的一些看法,原问题的论坛链接http://www.iteye.com/topic/364016,一个方案http:
2012-05-05 17:33:17 2221
原创 各种树的特点
简单总结下二叉查找树,红黑树,B树,B+树,B*树,AVL树,R树的特点关系与用处。首先他们都是查找树(search tree),支持多种动态集合的操作,search, minimum,maximum,predecessor,successor,insert,delete,既可以用作字典,也可以用作优先队列。一般而言,各种树的操作都与树的高度成正比。二叉查找树,一颗随机构造的二叉查找树的期
2012-05-05 11:02:24 9473
原创 程序是如何生成和执行与终止
一、程序的生成程序生成的基本过程就是编译,链接。编译大体上也分三部分,预处理,编译,汇编,因为编译过程最复杂,所以这三步一般合起来叫编译。先说预处理,预处理中可以宏定义,完成对文本的替换。预处理还可以检查头文件是否重复包含。通过预处理还可以选择性的编译。编译(编译器就是完成编译动作的程序)就是把.c文件生成汇编代码,mov之类的指令,汇编就是把汇编代码生成可执行的机器可识别的命令。
2012-05-02 21:35:59 1327
原创 海量数据问题总结
这个是一系列问题,互联网公司,一些基本的功能都已经做的很完善了,海量数据处理成为重点的问题,也是面试笔试中常考的题目。主要参考http://blog.csdn.net/v_july_v/article/details/62794981.分而治之/hash映射 + hash统计 + 堆/快速/归并排序hash映射很重要,分类后的数据不会分散,某一个类别的数据会全部在一起。用hash_map统
2012-05-01 17:10:19 812
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人