自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不舍驽马

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(73)
  • 收藏
  • 关注

转载 四道面试题

http://bbs.csdn.net/topics/3102029051.有1亿个浮点数,请找出其中对大的10000个。提示:假设每个浮点数占4个字节,1亿个浮点数就要站到相当大的空间,因此不能一次将全部读入内存进行排序。 答:1.每100万个一组,读到内存(大约要4M内存)中,构建大顶堆,把堆顶(最大数)和文件号记录到一个100大小的数组A,再写回到磁盘,形成一个文件,这样

2015-08-10 21:28:28 277

转载 C++中虚函数工作原理和(虚)继承类的内存占用大小计算

原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531一、虚函数的工作原理      虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为

2015-08-08 23:08:55 247

转载 轻松搞定面试中的红黑树问题

http://blog.csdn.net/silangquan/article/details/186557951.stl中的set底层用的什么数据结构?2.红黑树的数据结构怎么定义的?3.红黑树有哪些性质?4.红黑树的各种操作的时间复杂度是多少?5.红黑树相比于BST和AVL树有什么优点?6.红黑树相对于哈希表,在选择使用的时候有什么依

2015-08-08 23:07:19 511

原创 各种排序算法的比较次数

借助比较的排序每次比较贡献O(1)的复杂度插入排序   最少n-1 最多n(n-1)/2冒泡排序   最少n-1 最多n(n-1)/2选择排序   n(n-1)/2快速排序   int partition(int *arr , int low , int high)  {      int pivo = arr[low];      

2015-08-08 21:16:27 35410

转载 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间

腾讯一面试题,采用冒泡排序的思想,大写字母向后移动,小写字母向前移动,时间复杂度为O(N^2)。#include #include string.h>#include int main(){ char str[100]; while (scanf("%s", str) != EOF) { int n, j; int nLen

2015-08-07 23:05:17 2530

转载 C++中overload,override,overwrite的区别详细解析

Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名

2015-08-07 23:04:15 467

原创 快排非递归实现

int partition(int* arr, int low, int high){int pivot = arr[low];while(low {        while(low = pivot)            high--;        arr[low] = arr[high];        while(low             low

2015-08-07 00:42:06 494

转载 malloc函数的一种简单的原理性实现[转]

http://lklkdawei.blog.163.com/blog/static/32574109200881445518891/malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针malloc()工作机制  mal

2015-08-06 22:09:56 337

原创 编写C++中的两个类 一个只能在栈中分配空间 一个只能在堆中分配

#include  using namespace std;  //只能在堆上分配内存  class HeapOnly  {  public:      HeapOnly()      {          cout"Construct."    }      //pseudo dtor,注意为const,因为const也可能需要被销毁    void 

2015-08-06 19:47:20 442

转载 高级数据结构之线段树、并查集博客精选

线段树:http://www.tuicool.com/articles/jaINruq并查集:[算法导论读书笔记]用于不相交集合的数据结构(并查集)http://blog.csdn.net/lalor/article/details/7388524http://www.cnblogs.com/ktyanny/archive/2009/12/09/

2015-08-05 22:29:27 312

转载 thread safe lazy initialization singleton

double-check来保证thread safety,此法可能由于乱序执行而失效参考:http://www.javaworld.com/article/2075306/java-concurrency/can-double-checked-locking-be-fixed-.html 1 class Singleton 2 { 3 private: 4 sta

2015-08-04 20:33:52 384

转载 TCP粘包的几个有用转载

http://blog.csdn.net/zhangxinrun/article/details/6721495http://blog.csdn.net/liuchen1206/article/details/7075770http://blog.csdn.net/initphp/article/details/41948919

2015-08-04 19:20:15 201

转载 epoll的几个有用转载

http://laokaddk.blog.51cto.com/368606/607143/http://blog.csdn.net/hjxhjh/article/details/9374837http://blog.csdn.net/xiajun07061225/article/details/9250579

2015-08-04 19:18:06 246

转载 Linux写时拷贝技术(copy-on-write)

http://www.cnblogs.com/biyeymyhjob/archive/2012/07/20/2601655.htmlLinux写时拷贝技术(copy-on-write)源于网上资料COW技术初窥:      在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了

2015-08-03 22:55:09 324

转载 信号量、互斥体和自旋锁

http://www.cnblogs.com/biyeymyhjob/archive/2012/07/21/2602015.html一、信号量      信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操

2015-08-03 22:52:33 336

转载 10道C++输出易错笔试题收集

http://www.cnblogs.com/lanxuezaipiao/p/4148155.html第一部分:题目如下函数,在32 bit系统foo(2^31-3)的值是:() int foo(int x) { return x&-x; }A:0 B: 1 C: 2 D: 4运算符优先级 unsigned char i=0

2015-08-03 22:37:17 383

转载 高并发网络编程之epoll详解

http://www.cricode.com/3499.html在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和

2015-08-03 18:54:43 276

转载 C++面试题

http://www.jobui.com/mianshiti/it/cpp/5107/1. 一个系统里面有多个线程, 其中一个线程想终止另外一个线程, 该怎么实现.2. 为什么要用virtual destructor3. 什么是heap corruption4. Semaphore VS Mutex5. C++中的static, 怎么用,内存在哪里分配,

2015-08-03 18:16:08 280

转载 多进程和多线程的区别

http://m.blog.csdn.net/blog/leolinsheng/12979473关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”。这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有那么简单了,选的不好,会让你深受其害。所以他也是面试者最喜欢考察的题目之一。我们按照多个不同的维度,来看看多进程和

2015-08-03 18:12:40 270

转载 Memory barrier(内存屏障)

理解 Memory barrier(内存屏障)http://name5566.com/4535.html一句话解说内存屏障 Memory barrier http://blog.chinaunix.net/uid-20384806-id-1954383.html

2015-08-03 12:05:41 438

原创 UNIX环境高级编程---读书笔记

第一章errno:(1)当函数出错时会被设置为含有附加信息的整型变量(2)每个线程有其局部errno以避免一个线程干扰另一个线程(3)如果没有出错其值不会被清除,只有出错时才需检验,并且任何函数不会把它设置为0(4)可以使用perror基于其当前值输出一条出错信息(5)如果出错分为致命性和非致命性,前者可以延迟一段时间重试,后者则执行不可恢复动作:可在终端打印出错信息或写入

2015-08-02 19:11:57 498

转载 面试常考点:虚假唤醒 Spurious wakeup

https://en.wikipedia.org/wiki/Spurious_wakeupSpurious wakeup describes a complication in the use of condition variables as provided by certain multithreading APIs such as POSIX Threads and t

2015-08-01 15:35:19 3276

原创 《Linux多线程服务端编程》学习笔记---第一章

多线程下管理对象会遇到的问题:(1)对象析构时可能别的线程在执行该对象的成员函数(2)成员函数执行时该对象正在被别的线程析构(3)在调用某对象时如何得知该对象还未被析构对这些问题进一步看就是要保证多线程环境下对象创建与析构的安全性。对于创建,关键是不要在创建过程中泄露this指针,如果泄露了调用者会在对象还未构造完成之前就开始使用这一对象,如果对象是基类对象,其派生类还未构造,

2015-08-01 12:58:06 1402

转载 与设计模式有关的几个博客

大汇总1:点击打开链接C++ 线程安全的单例模式:点击打开链接C++设计模式(转载):http://www.cnblogs.com/userinterface/archive/2005/04/15/138074.html

2015-08-01 00:47:35 218

转载 线程上下文切换和进程上下文切换的区别

http://www.godoone.com/archives/context-thread-progress.html线程上下文切换和进程上下问切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出。另外一个隐藏的损耗是上下文的切换会扰

2015-07-28 13:53:27 627

原创 快排与堆排序、归并排序的比较

快排while循环是永真循环,而归并却不是,归并多做了N*LogN次比较,归并会做几乎完美的分割,效果较快排好,但是多计N*LongN,归并反而慢好像要比快排多花40%的时间归并理论上效率很好,但是在while循环时,要判断是否出界,多做n*logn次比较,还要把数据拷贝回去,速度明显慢于快排。我们刚才讨论归并理论上更快,就是指归并可以把序列分成两个几乎相等的子序列,无论怎样的快排

2015-07-28 13:04:18 8168

转载 建议性锁和强制性锁机制下的锁

http://www.cppblog.com/mysileng/archive/2012/12/17/196372.html 首先,建议性锁和强制性锁并不是真正存在的锁,而是一种能对诸如记录锁、文件锁效果产生影响的两种机制。1.建议性锁机制是这样规定的:每个使用文件的进程都要主动检查该文件是否有锁存在,当然都是通过具体锁的API,比如fctl记录锁F_GETTLK来主动检查是否有锁

2015-07-26 18:52:08 1287

转载 对找工作功不可没——评《深入理解计算机系统》

http://book.51cto.com/art/201103/249824.htm引子:在我刚刚进入中科院计算所读研的时候,同宿舍的师兄便向我推荐了一本《深入理解计算机系统》,这本书从一个程序员的视角详细剖析了整个计算机系统,涵盖了组成原理、汇编语言、体系结构、操作系统、网络等计算机基础知识。由于时间所限,我并没有立刻阅读,而是将其列入了找工作前的复习书单。2010

2015-07-25 22:26:46 342

转载 Sizeof与Strlen的区别与联系

http://www.cnblogs.com/carekee/articles/1630789.html一、sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此s

2015-07-25 22:24:09 288

原创 在100G文件中找出出现次数最多的100个IP

昨天面阿里最后栽在一道很常见的海量数据处理上了,也怪之前没专门花时间准备这个问题。今天参考了July的博客,又反思了下自己面试时错误的思路,重新整理为下面的解答过程。先上July的博客对类似问题的解答思路:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重

2015-07-18 21:16:02 23796 3

转载 [转][编程之美]2.11 寻找最近点对

问题:给定平面上N个点的坐标,找出距离最近的两个点。数学描述:设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn)是平面上n个点构成的集合S,设计算法找出集合S中距离最近的点对。分析与解答:解法一:蛮力法         蛮力枚举两两点对之间的距离,然后得到最小的点对即为所求。这种方法需要两层循环,复

2015-07-18 19:27:00 1138

转载 volatile与编译器代码优化浅析

转载自:http://blog.chinaunix.net/uid-24641004-id-3395896.htmlVolatile有什么用?最近写ARM9的裸板C语言代码,比如说我想表示到GPBCON的地址的内容,我们往往会这样写:#define GPBCON (*(volatile unsigned int*)0x56000010) 

2015-07-18 13:14:27 569

转载 Read 和 Fread 的区别 (系统调用与库函数的区别)

read(由已打开的文件读取数据)包含头文件:#includessize_t read(int fd,void * buf ,size_t count);函数说明  read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read()不会有作用并返回0。返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可

2015-07-15 00:30:36 1484

空空如也

空空如也

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

TA关注的人

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