- 博客(33)
- 资源 (11)
- 收藏
- 关注
转载 海量数据处理:十道面试题与十个海量数据处理方法总结
作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首
2015-09-19 15:59:47 226
转载 海量数据面试题整理
海量数据面试题整理 1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。 s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文
2015-09-19 15:57:55 272
转载 程序员面试常见海量数据处理问题
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问
2015-09-17 21:10:23 386
转载 程序员面试常见海量数据处理问题
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问
2015-09-17 21:07:46 210
转载 探索hash_set
本文将着重探索hash_set比set快速高效的原因,阅读本文前,推荐先阅读本文的姊妹篇《STL系列之六 set与hash_set》一.hash_set之基石——哈希表 hash_set的底层数据结构是哈希表,因此要深入了解hash_set,必须先分析哈希表。哈希表是根据关键码值(Key-Value)而直接进行访问的数据结构,它用哈希函数处理数据得到关键码值,关键码值对应表中
2015-09-17 20:24:12 264
转载 从头到尾解析Hash表算法
作者:July、wuliming、pkuoliver 出处:http://blog.csdn.net/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。-----------------------------------此作者写的非常不
2015-09-17 17:17:37 203
原创 全新整理:微软、谷歌、百度等公司经典面试100题[第101-160题]
微软十五道面试题1、有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。int min(){int a[10] = { 1, 3, 5, 8, 10, 2, 4, 9, 6, 7 };int len = 10;int min =abs(a[0]-a[1]);for (int i = 0; i {if (abs
2015-09-16 16:52:10 643
转载 字符串匹配常用算法
字符串匹配(string match)是在实际工程中经常会碰到的问题,通常其输入是原字符串(String)和子串(又称模式,Pattern)组成,输出为子串在原字符串中的首次出现的位置。通常精确的字符串搜索算法包括暴力搜索(Brute force),KMP, BM(Boyer Moore), sunday, robin-karp 以及 bitap。下面分析这几种方法并给出其实现。假设原字符串长度M
2015-09-15 14:42:24 256
转载 10道C++输出易错笔试题收集
下面这些题目都是我之前准备笔试面试过程中积累的,大部分都是知名公司的笔试题,C++基础薄弱的很容易栽进去。我从中选了10道简单的题,C++初学者可以进来挑战下,C++大牛也可以作为娱乐玩下(比如下面的第6题)。为了便于大家思考,将题目与答案分开,不过无论题目本身如何,我觉得后面的解析过程更值得学习,因为涉及很多我们学习C++过程中必知必会的小知识点 。第一部分:题目
2015-09-07 14:45:37 267
转载 同一进程中的线程究竟共享哪些资源
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进
2015-09-06 18:29:35 250
转载 操作系统基础知识
线程同步机制:线程同步机制有 临界区、互斥、信号量;临界区的效率高,但只能在同一进程的不同线程使用临界区不是内核对象,只能用于进程内部的线程同步。互斥、信号量是内核对象可以用于不同进程之间的线程同步。互斥其实是信号量的一种特殊形式。互斥可以保证在某一时刻只有一个线程可以拥有临界资源。信号量可以保证在某一时刻有指定数目的线程可以拥有临界
2015-09-02 17:47:23 671
转载 TCP/IP数据包结构详解
转自:http://blog.csdn.net/prsniper/article/details/6762145一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解网络数据包的结构,以及协议分析。如:网络监控,故障排查等…… IP包是不安全的,但是它是互联网的基础,在各方面都有广泛的应用。由IP协议衍生的协议族
2015-09-02 17:46:10 383
转载 C++重写(override)、重载(overload)、重定义(redefine)以及虚函数调用机制
一、基本概念对于C++中经常出现的函数名称相同但是参数列表或者返回值不同的函数,主要存在三种情况:1.函数重写(override)函数重载主要实现了父类与子类之间的多态性,子类中定义与父类中名称和参数以及返回值都相同的虚函数。1)重写的函数不能是static函数,必须是virtual函数,即函数在原始的基类中被声明为虚函数;2)重写函数与基类函数分在两个类的
2015-09-02 17:38:31 395
原创 遍历所有系统进程(C++)
#include #include #include void main(){ HANDLE hsnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(INVALID_HANDLE_VALUE==hsnap) { cout return; } else { PROCESSEN
2015-09-01 15:00:29 1034 1
转载 深入浅出Win32多线程程序设计
引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。 理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。许多程序员从来没
2015-09-01 14:59:18 311
转载 Windows下多线程编程指南
Windows多线程编程总结关键字:多线程 线程同步 线程池 内核对象1 内核对象1 .1内核对象的概念内核对象是内核分配的一个内存块,这种内存块是一个数据结构,表示内核对象的各种特征。并且只能由内核来访问。应用程序若需要访问内核对象,需要通过操作系统提供的函数来进行,不能直接访问内核对象(Windows从安全性方面来考虑的)。内核对象通过Create*来创建,返回一个用于
2015-09-01 13:00:01 301
转载 完成端口(Completion Port)详解 手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解
前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且
2015-08-31 21:41:20 275
转载 C/C++输入输出流总结
C++ I/OC++支持两种I/O,第一种是从C语言继承来的,一种是由C++定义的面向对象I/O系统。1、int getchar(void);返回一个整数值,也可以指定这个值为char变量,因为这个字符包含于低位字节中(高位字节通常为0),如果有错,getchar()返回EOF。但是他有一个潜在的问题,正常情况下,getchar()缓存输入,直到键入了回车键(这个大家应该深有体会,
2015-08-31 21:30:10 280
转载 c++Socket编程步骤
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听
2015-08-31 21:29:12 244
转载 Boost安装配置和总结
二、Boost安装2.1 Boost官网下载Boost最新版Version 1.55.02.2将下载压缩包解压到本地解压后可看到文件夹下有个bootstrap.bat文件。2.3打开cmd命令窗口,运行bootstra.bat文件执行以下命令,具体根据自己的环境略有变化。最主要的目的是我们要运行bootstrap.bat文件
2015-08-31 11:47:32 463
转载 哈希表的C++实现
哈希表的几个概念:映像:由哈希函数得到的哈希表是一个映像。冲突:如果两个关键字的哈希函数值相等,这种现象称为冲突。处理冲突的几个方法:1、开放地址法:用开放地址处理冲突就是当冲突发生时,形成一个地址序列,沿着这个序列逐个深测,直到找到一个“空”的开放地址,将发生冲突的关键字值存放到该地址中去。例如:hash(i)=(hash(key)+d(i)) MOD m
2015-08-26 16:53:59 447
转载 实例详解tomcat组件安装+Nginx反向代理tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡
一、Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。
2015-08-25 17:15:20 288
原创 VC编程Windows消息处理机制、阻塞试验、SetTimer、MessageBox、小心消息响应处理函数多个并存-之二
本文说明两个问题:1.windows的消息处理机制;2.怎么往SetTimer的回调函数传递参数。 首先看第一个问题,我们都知道windows是消 息驱动的,windows呈现给用户的任何可以看到听到的东西几乎都是消息驱动的,在底层windows为每个线程准备了一个消息队列,如果用户线程注册 了某个消息,那么在适当的时候windows就会将消息投递到该线程的消息队列
2015-08-25 16:58:17 372
原创 VC编程Windows消息处理机制、阻塞试验、SetTimer、MessageBox、小心消息响应处理函数多个并存
VC编程Windows消息处理机制、阻塞试验、SetTimer、MessageBox、小心消息响应处理函数多个并存VC6标准WIN32程序,Windows消息处理机制:1.在注册窗口类时,指定了消息处理函数WndProc()。2.WinMain()里有消息循环: while (GetMessage(&msg, NULL, 0, 0)) {
2015-08-25 16:55:53 591
原创 string 与char* char[]之间的转换
1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能
2015-08-14 14:46:48 210
原创 C++机试题
1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50void main(){int num[50] = { 0 };int i, n;printf("请输入整型数组的长度(1~50):");scanf("%d", &n);
2015-08-07 16:07:36 969
原创 一个小时轻松掌握STL
本人觉得一网友写的挺好的,听说是翻译过来的文章,特转载过来,供大家学习交流。文章中的程序,本人已经修改运行了,暂无错误!转载地址:http://net.pku.edu.cn/~yhf/UsingSTL.htm ,该网友是在linux下操作的,我发布的这个为在windows下运行的,个别函数不同,我已经修改过来了,然后加了一些自己在训练学习过程中的想法。STL概述STL的一个重要特点是数据结
2015-04-17 15:11:21 356
转载 在二元树中查找和为某一值的所有路径
百度面试题目: 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。 例如输入整数 22 ,如下图二元树: 10
2015-03-25 15:34:40 257
转载 C语言之快速排序(5)
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速
2015-03-24 15:14:26 277
原创 C语言之希尔排序法(4)
希尔排序(ShellSort)是插入排序的一种 是针对直接插入排序算法的改进算法先将要排序的一组数按某个增量gap分成若干组,每组中记录的下标相差gap.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。算法代码://希尔排序法void Shell_Sort(int *a,int len){
2015-03-24 13:05:54 483
原创 C语言之冒泡排序法(3)
其算法很简单,就是比较数组相邻的两个值,把大的像泡泡一样“冒”到数组后面去,一共要执行N的平方除以2这么多次的比较和交换的操作(N为数组元素),其复杂度为Ο(n²)。算法代码://冒泡排序法#include "stdafx.h"void Mao_Sort(int *a,int len){int i,j,temp;for(i=0;i{for(j=0;j{
2015-03-24 11:03:39 296
原创 C语言之直接插入排序法(2)
直接插入排序(straight insertion sort)的做法是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。直接插入排序属于稳定的排序,最坏时
2015-03-24 09:58:57 387
原创 C语言之选择排序法(1)
找出最大的一个元素,和末尾的元素交换,然后再从头开始,查找第1 个到第N-1 个元素中最大的一个,和第N-1 个元素交换……其实差不多就是冒泡法的思想,但整个过程中需要移动的元素比冒泡法要少,因此性能是比冒泡法优秀的。算法实现代码:// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//选择排序法void Sea
2015-03-24 09:41:29 306
broadcom56504/56300交换芯片
2015-12-21
最小外接矩形matlab
2015-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人