- 博客(10)
- 资源 (3)
- 收藏
- 关注
原创 2.7 最大公约数问题
写一个程序,求两个正整数的最大公约数。如果两个正整数都很大,有什么简单算法?例如,给定两个数 1100100210001,,10200021,求出其最大公约数。分析辗转相除法的原理,假设用f(x,y)表示x,y的最大公约数,取k=x/y, b=x%y,则 x=ky + b,如果一个数能够同时整除x和y,则必能同时整除b和y;而能够同时整除b和y的数也必能同时整除x和y,即x和y
2017-11-11 16:14:28 314
原创 2.6 精确表达浮点数
计算机中,使用float或double来存储小数是不能得到精确值的。如果希望得到精确结果,最好用分数形式来表示小数。有限小数或无限循环小数都可以转化为分数。如: 0.9=9/10; 0.333(3)=1/3 (括号中的数字表示循环节)当然一个小数可以用好几种分数形式来表示。如: 0.333(3)=1/3=3/9给定一个有限小数或无限循环小数,能否以分母最小的分数形式来返回这个小数?如果
2017-11-11 14:53:28 420
原创 2.5 寻找最大的K个数
解法一:假设元素的数量不大,用快排或堆排序都是不错选择,平均时间复杂度都是O(N*log N)。然后取出前K个,O(K)。总时间复杂度O(N*log N)+ O(K)=O(N* log N)。当K=1,上述算法也是O(N* log N)的复杂度,而显然我们可以通过N-1次的比较和交换得到结果。上述算法对整个数组都进行了排序,而原题目只要求最大的K个数,并不需要前K个数有序,也不需要前K个数
2017-11-10 21:46:31 251
原创 条款01~02
01:视C++为一个语言联邦C++是个多重范型编程语言multiparadigm programming language,一个同时支持过程形式procedural, 面向对象形式 object-oriented,函数形式 functional,泛型形式generic,元编程形式metaprogramming的语言。简单方法就是将C++视为一个由相关语言组成的联邦而非单一语言。在其某个次语
2017-11-10 21:39:23 251
原创 0 导读
学习程序设计语言是一回事,学习如何以某种语言设计并实现高效程序则是另一回事。《Effective C++》使你的软件易理解、易维护、可移植、可扩充、高效、并且有着你所期望的行为。作者的建议分为两类:1)一般性的设计策略;2)带有具体细节的特定语言特性。本书是一份55个特定建议的集合,谈论如何强化你的程序和设计。每个条款有相当程度的独立性,但大多数也参考其他条款。
2017-11-10 14:53:45 197
原创 2.4 1的个数
给一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。例如:N=2,写下1,2.这样只出现了1个“1”。N=12,写下1,2,3,4,5,6,7,8,9,10,11,12.这样,1的个数是5.问题:(1)写一个函数f(N),返回1到N之间出现的“1”的个数,比如f(12)=5。(2)满足条件f(N)=N的最大的N是多少?解法一:ULO
2017-11-06 16:06:29 245
原创 2.3 寻找发帖“水王”
水王发帖超过数目超过帖子总数的一半,你有一个当前论坛上所有帖子的列表,其中帖子作者ID也在表中,快速找到这个水王、一、对所以的ID排序,然后扫描一遍排好序的ID列表,统计各个ID出现的次数。如果某个ID出现的次数超过总数的一半,那么就输出这个ID。这个算法的时间复杂度为O(N*log N +N)。如果ID列表已经是有序的,还需要扫描一遍整个列表来统计各个ID出现的次数吗?
2017-11-06 15:13:31 262
原创 2.2 不要被阶乘吓跑
1 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3628800,N!的末尾有两个0。分析:从”哪些数相乘能得到10“这个角度来考虑,问题变得简单。如果N!= K * 10^M,且K不能被10整除,那么N!末尾有M个0.再考虑对N!进行质因数分解,N!=2^X * 3^Y * 5^Z…,由于10 = 2*5,所以M只跟X和Z相关,每一对2和5相乘可以得到一个1
2017-11-06 12:33:02 211
原创 2.1 求二进制数中1的个数
对于一个字节(8 bit)的无符号整形变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高、解法一:通过整形数据除法的特点,通过相除和判断余数的值来分析。int count(BYTE v) { int num=0; while(v) { if(v % 2 ==1) { num++; } v=v/2; } return num;}解法
2017-11-06 09:54:54 266
转载 STL---heap概述,make_heap,sort_heap,pop_heap,push_heap
heap并不属于STL容器组件,它分为 max heap 和min heap,在缺省情况下,max-heap是优先队列(priority queue)的底层实现机制。而这个实现机制中的max-heap实际上是以一个vector表现的完全二叉树(complete binary tree)。二叉堆(binary heap)就是i一种完全二叉树。也即是。整棵二叉树除了最底层的叶节点以外,
2017-11-01 10:05:40 242
MySql必知必会
2017-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人