
程序开发
文章平均质量分 92
pi9nc
这个作者很懒,什么都没留下…
展开
-
100楼层2个手机问题及其推广(百度面试题目)
一个楼层有100层,已知手机在其中的某一层摔下就会坏,现在有两个一样的手机,请问,最少能摔几次保证一定找出那个极限的楼层值.(从101层掉下必坏).我们把有n个手机的问题用Q(n)表示,下面将分别考虑问题.问题: 所谓的最少次数是什么意思分析:所谓的最少次数是指要给出一个算法,按照这个算法,无论如何都能保证在给定的步数内找出来(不论这个手机的极限层楼是几楼)转载 2012-10-23 19:49:14 · 1446 阅读 · 0 评论 -
C语言可变参数列表应用——多字符串复制和链接
C语言可变参数列表应用——多字符串复制和链接分类: C&C++2012-10-17 23:27 372人阅读 评论(0) 收藏 举报 C标准库中头文件中包含可变参数列表的实现,完成遍历未知数目和类型的函数参数列表的功能。提供以下3个宏以及va_list变量: va_start(va_list ap, lastarg):转载 2012-10-23 19:13:10 · 1126 阅读 · 0 评论 -
求二叉树中两个节点p,q的最低公共祖先节点
题目要求:求二叉树中两个节点p,q的最低公共祖先节点 首先,题目中没有明确说明节点的结构,所以思考了一会然后问面试官节点有没有父指针,面试官说有没有父指针有影响吗?我说有,然后他笑着说你来说说看。当时,只做出来有父指针的情况,没有父指针的情况压根想不出来。后来会实验室静下心来很快就想到了思路。这里分这两种情况讨论: 1. 二叉树节点具有父指针转载 2012-10-24 15:14:05 · 4533 阅读 · 0 评论 -
DLL编写教程
DLL编写教程半年不能上网,最近网络终于通了,终于可以更新博客了,写点什么呢?决定最近写一个编程技术系列,其内容是一些通用的编程技术。例如DLL,COM,Socket,多线程等等。这些技术的特点就是使用广泛,但是误解很多;网上教程很多,但是几乎没有什么优质良品。我以近几个月来的编程经验发现,很有必要好好的总结一下这些编程技术了。一来对自己是总结提高,二来可以方便光顾我博客的朋友。好了,废话转载 2012-10-24 16:02:41 · 925 阅读 · 0 评论 -
并查集 (Union-Find Sets)
并查集 (Union-Find Sets)并查集:(union-find sets)是一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多。一般采取树形结构来存储并查集,并利用一个rank数组来存储集合的深度下界,在查找操作时进行路径压缩使后续的查找操作加速。这样优化实现的并查集,空间复杂度为O(N),建立一个集合的时间复杂度为O(1),N转载 2012-10-24 17:19:14 · 940 阅读 · 0 评论 -
有向图强连通分量的Tarjan算法
强连通分量问题通常可归纳为要求出强连通分量,然后通过缩点(将得出的每个连通分量视为一个点,然后继续构图,例如连通分量A有一个点有一条边指向连通分量B的一个点,那么在A上搭一条边到B,其他连通分量也以此类推)。求图的强连通分量一个算法为tarjan,在http://www.byvoid.com/blog/scc-tarjan/这博客中对tarjan的算法描述得非常的详细。我这里转载方便自己以后看转载 2012-11-02 15:27:14 · 683 阅读 · 0 评论 -
欧几里德算法和扩展欧几里德算法
欧几里德算法和扩展欧几里德算法欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是转载 2012-11-02 15:39:47 · 1555 阅读 · 0 评论 -
田忌赛马(Tian Ji -- The Horse Racing)中的动态规划以及贪心算法
这两天碰到一道看似很简单,但是实际做起来确实比较难的问题,在这里分析讨论一下。题目:http://acm.hdu.edu.cn/showproblem.php?pid=1052Tian Ji -- The Horse RacingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java转载 2012-11-02 20:53:57 · 2028 阅读 · 0 评论 -
整数拆分的两种解法(已完成)
整数拆分的两种解法(已完成)4.1 集合的分划和第二类Stirling数定义1 (集合的划分)设A 是有限集.A 的一族子集{Ai}称为是集A 的一个划分,如果满足:(1)每个子集Ai 都非空;(2)这些子集两两不交;(3)它们的并为A.每个Ai称为划分的一个块,有k个块的划分称为k- 划分.定义2 (第二类转载 2012-11-02 20:01:06 · 18165 阅读 · 0 评论 -
初识EM algorithm
初识EM algorithm分类: 统计计算statistical computing2011-12-10 21:15 77人阅读 评论(0) 收藏 举报很多书阐述了EM algorithm的原理,直接点可以在维基百科上找到它的基本情况:http://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algor转载 2012-11-02 21:47:35 · 770 阅读 · 0 评论 -
杰弗里斯对归纳推理理论的规则
杰弗里斯对归纳推理理论的规则分类: 贝叶斯计算2012-02-22 19:35 823人阅读 评论(0) 收藏 举报 回忆一下归纳中最重要的部分是将过去的经验推广,来预测未来将被观测到的现象,现在来论述由杰弗里斯提出的一组管理归纳过程的规则。 规则1用到的所有假设必须是清楚叙述的,结论必须是由该假设导出的。 规则2归纳的理转载 2012-11-02 21:48:58 · 1023 阅读 · 0 评论 -
常见hash算法的原理
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列转载 2012-11-02 10:43:45 · 5553 阅读 · 0 评论 -
牛顿法
Aim: Find oˆ such thatProblem: Analytic solution of likelihood equations not always available. Example: Censored exponentially distributed observations Suppose that and that the censored ti转载 2012-11-02 21:46:12 · 689 阅读 · 0 评论 -
Gibbs sampling & R
Gibbs sampling & R分类: R 统计计算statistical computing 抽样、模拟、实验设计2011-12-13 21:28 404人阅读 评论(0) 收藏 举报维基百科的定义:http://en.wikipedia.org/wiki/Gibbs_sampling我们假设一个随机的二元变量(x,y),然后计算其中一个或全部的边缘分布p(x转载 2012-11-02 21:50:18 · 2579 阅读 · 0 评论 -
背包九讲
【转】背包九讲-dd_engi-第一部分 (2012-03-24 23:26:49)转载▼标签: 背包 动态规划 空间复杂度 物品 杂谈分类: mass转载:dd_engi 的背包九讲目录第一讲 01背包问题第二讲 完全背包问题第三转载 2012-11-03 09:39:07 · 27234 阅读 · 2 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总转载 2012-11-04 12:30:40 · 1511 阅读 · 0 评论 -
零零散散学算法之详解RMQ & LCA
2第一节 RMQ、LCA概述 LCA:Lowest Common Ancestor,译为最近公共祖先。其解释就是说:在有根树中,找出树中任意两个节点最近的公共祖先,或者说找到任意两个节点离树根最远的公共祖先。 RMQ:Range Minimum Query,译为区间最小值查询。其解释就是说:对于含有N个元素的数列A,在数列中找转载 2012-11-02 21:58:07 · 2926 阅读 · 2 评论 -
用C/C++创建windows服务程序
用C/C++创建windows服务程序转载请标明是引用于 http://blog.youkuaiyun.com/chenyujing1234 一、演示过程下方代码演示了如何使用vs(C/C++)创建windows服务程序工程文件下载地址: http://download.youkuaiyun.com/download/sooth2008/2759082转载 2012-11-12 21:43:22 · 9176 阅读 · 0 评论 -
秒杀多线程第四篇 一个经典的多线程同步问题
秒杀多线程第四篇 一个经典的多线程同步问题分类: Windows多线程 Windows编程2012-04-10 09:57 17975人阅读 评论(25) 收藏 举报上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,现在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,转载 2013-01-23 16:49:27 · 675 阅读 · 0 评论 -
秒杀多线程第三篇 原子操作 Interlocked系列函数
秒杀多线程第三篇 原子操作 Interlocked系列函数分类: Windows多线程 Windows编程2012-04-09 09:08 15415人阅读 评论(67) 收藏 举报多线程thread汇编原子操作上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以转载 2013-01-23 16:40:31 · 643 阅读 · 0 评论 -
秒杀多线程第五篇 经典线程同步 关键段CS
秒杀多线程第五篇 经典线程同步 关键段CS分类: Windows多线程 Windows编程2012-04-11 09:06 12873人阅读 评论(71) 收藏 举报多线程threadmicrosoftfunnullstruct上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试转载 2013-01-23 16:58:18 · 528 阅读 · 0 评论 -
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别分类: Windows多线程 Windows编程2012-04-05 09:36 23466人阅读 评论(66) 收藏 举报多线程threadnullstructureattributessecurity 本文将带领你与多线程作第一次亲密接触,并深入分析Cre转载 2013-01-23 16:34:36 · 606 阅读 · 0 评论 -
秒杀多线程第六篇 经典线程同步 事件Event
秒杀多线程第六篇 经典线程同步 事件Event分类: Windows多线程 Windows编程2012-04-11 09:06 13616人阅读 评论(85) 收藏 举报多线程nullthreadsemaphorefunaccess阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇 一个经典的多线程同步问题》《秒杀多线程第五篇 经典线程同步关键段CS》转载 2013-01-23 17:05:12 · 569 阅读 · 0 评论 -
使用异步 I/O 大大提高应用程序的性能(来自IBM)
使用异步 I/O 大大提高应用程序的性能(来自IBM)分类: 理论原理2012-11-27 14:34 103人阅读 评论(0) 收藏 举报目录(?)[+]AIO简介Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它是 2.6 版本内核的一个标准特性,但是我们在 2.4 版本内核的补丁中也可以找到它。AIO 背转载 2013-01-11 20:42:36 · 551 阅读 · 0 评论 -
Nginx源码剖析之内存池,与内存管理
分类: 28.Source analysis2011-12-04 23:43 25754人阅读 评论(50) 收藏 举报目录(?)[+]Nginx源码剖析之内存池,与内存管理作者:July、dreamice、阿波、yixiao。出处:http://blog.youkuaiyun.com/v_JULY_v/。转载 2013-01-11 21:37:56 · 606 阅读 · 0 评论 -
功能宏
功能宏开关模块的实现(C语言)分类: 设计思路2012-11-11 22:09 445人阅读 评论(0) 收藏 举报目录(?)[+]一、功能宏优点 在进行软件系统的开发过程中,对不同的功能模块的代码使用分别使用与之对应的宏将其控制起来,其有如下优点: ①、方便移植 在移植过程中,可根据功能宏快速的将功能模转载 2013-01-11 16:18:23 · 1276 阅读 · 0 评论 -
C++文件的批处理
C++文件的批处理时间:2012-07-23 09:43点击:45 次 【大 中 小】一、统计代码行数 几个星期前做了个统计代码的小程序,对文件的批处理需要获取文件列表,因为是在windows下操作的,所以百度到一个系统调用 system("dir /a /b >> file_list.txt");功能就是把当前目录下的所有文件名写到file转载 2013-01-11 19:39:26 · 2990 阅读 · 0 评论 -
深入浅出Dll(介绍函数导出、类导出、钓子dll、不同语言混合编程方法、插件等的实现方法) 选择自 iceezone 的 Blog
2005-10-20 14:25 2210人阅读 评论(1) 收藏 举报 深入浅出Dll(介绍函数导出、类导出、钓子dll、不同语言混合编程方法、插件等的实现方法) 所有代码均经过测试,如有问题可留言一。简单的dll函数调用有两种方式: 1。显式调用2。隐式调用.如下例子//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx转载 2013-01-11 16:14:34 · 625 阅读 · 0 评论 -
理解ATL中的一些汇编代码
我们知道ATL(活动模板库)是一套很小巧高效的COM开发库,它本身的核心文件其实没几个,COM相关的(主要是atlbase.h, atlcom.h),另外还有一个窗口相关的(atlwin.h), 所以拿来学习应该是很方便的。但是因为ATL的代码充满了模板和宏,内部还夹杂着汇编,所以如果没有比较丰富的C++模板和系统底层的知识,一般人会看得一头雾水。下面我们主要分析一下ATL中的一些汇编代码转载 2013-01-11 20:53:16 · 516 阅读 · 0 评论 -
内存池的设计和实现 -- 《C++应用程序性能优化》
分类: 设计思路2012-10-11 11:35 447人阅读 评论(0) 收藏 举报引言本书主要针对的是 C++ 程序的性能优化,深入介绍 C++ 程序性能优化的方法和实例。全书由 4 个篇组成,第 1 篇介绍 C++ 语言的对象模型,该篇是优化 C++ 程序的基础;第 2 篇主要针对如何优化 C++ 程序的内存使用;第 3 篇介绍如何优化程序的启转载 2013-01-11 22:22:32 · 1178 阅读 · 0 评论 -
高效内存池的设计方案[C语言]
分类: 设计思路2012-11-18 02:18 1257人阅读 评论(6) 收藏 举报目录(?)[+]一、前言概述本人在转发的博文《内存池的设计和实现》中,详细阐述了系统默认内存分配函数malloc/free的缺点,以及进行内存池设计的原因,在此不再赘述。通过对Nginx内存池以及《内存池的设计和实现》的分析后,现提出一种性能更优(申请/释放内存时转载 2013-01-11 22:29:13 · 10249 阅读 · 0 评论 -
C代码优化方案
C代码优化方案分类: 设计思路2012-10-11 14:14 574人阅读 评论(0) 收藏 举报目录(?)[+]目录C代码优化方案1、选择合适的算法和数据结构2、使用尽量小的数据类型3、减少运算的强度(1)、查表(游戏程序员必修课)(2)、求余运算(3)、平方运算(4)、用移位实现乘转载 2013-01-11 22:34:03 · 1916 阅读 · 0 评论 -
一些软件设计的原则
2011年4月25日陈皓发表评论阅读评论19,669 人阅读 以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中所以说的UNIX的设计原则。相信大家从中能够从中学了解到一些设计原理方面的知识,正如我在《再谈“我是怎么招聘程序”》中所说的,一个好的程序员通常由其操作技能、知识水平,经验层力和能力四个方面组成。在这里想和大家说说设计中的转载 2013-01-12 15:42:09 · 595 阅读 · 0 评论 -
鸽巢原理
抽屉原理百科名片 抽屉原理桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1或多于n+1个元素放到n个集合中去,其中必定至少有一个集合里有两个元素。” 抽屉原理有转载 2013-01-15 16:26:47 · 11420 阅读 · 0 评论 -
约瑟夫环问题
继续笔试准备ing……分享一下昨天做到的其中一题,其实题目很老,也做过n遍了,但复习起来也是颇有韵味,同时还发现另一种妙解,感觉不错的。问题描述: 约瑟夫环问题(Josephus) 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)解法一(My Solution): 思想转载 2013-01-15 16:55:19 · 715 阅读 · 0 评论 -
从归并排序到数列的逆序数对(微软笔试题)
从归并排序到数列的逆序数对(微软笔试题)分类: 白话经典算法系列2012-10-15 09:15 5960人阅读 评论(16) 收藏 举报首先来看看原题 微软2010年笔试题在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。如{2,4,3,1}中,2和1,4和3,4和转载 2013-01-19 20:36:47 · 749 阅读 · 0 评论 -
有趣的GOOGLE面试题
白话经典算法系列之十 一道有趣的GOOGLE面试题分类: 白话经典算法系列2012-11-21 09:03 12366人阅读 评论(58) 收藏 举报白话经典算法GOOGLE面试题谷歌面试题基数排序哈希表微博http://weibo.com/MoreWindows已开通,欢迎关注。最近在微博上看到一道有趣的GOOGLE面试题,见下图:文字版:转载 2013-01-19 20:58:40 · 761 阅读 · 0 评论 -
随机生成和为S的N个正整数——投影法
【白话经典算法系列之十三】随机生成和为S的N个正整数——投影法分类: 白话经典算法系列 Windows编程2013-01-04 13:46 2459人阅读 评论(17) 收藏 举报白话经典算法和为S的N个正整数投影法随机三趣题【白话经典算法系列之十三】随机生成和为S的N个正整数——投影法 随机生成和为S的N个正整数有很多种解法。下面讲解一种比较高效且比较转载 2013-01-19 20:56:28 · 738 阅读 · 0 评论 -
C++为什么不加入垃圾回收机制
C++为什么不加入垃圾回收机制分类: 文章2011-09-21 10:22 503人阅读 评论(2) 收藏 举报目录(?)[+]Java的爱好者们经常批评C++中没有提供与Java类似的垃圾回收(Gabage Collector)机制(这很正常,正如C++的爱好者有时也攻击Java没有这个没有那个,或者这个不行那个不够好),导致C++中对动态转载 2013-01-19 21:55:58 · 674 阅读 · 0 评论 -
C#技术漫谈之垃圾回收机制(GC)
C#技术漫谈之垃圾回收机制(GC)作者: spring yang 来源: 博客园 发布时间: 2011-09-18 23:17 阅读: 7225 次 推荐: 7 原文链接 [收藏] 摘要:今天我们漫谈C#中的垃圾回收机制,本文将从垃圾回收机制的原理讲起,希望对大家有所帮助。 GC的前世与今生 虽然本文是以.NET作为目标转载 2013-01-20 20:51:16 · 638 阅读 · 0 评论