- 浏览: 235652 次
-
最新评论
-
naouguhtaeyeti:
当台阶数大时,这个用递归效率太低
【100题】第二十七 跳台阶问题
文章列表
一,概述
1)72法则 :单位时间增长率 * 时间 =72 则该时间完成初始值翻番
题目:假设最初投资金额为100元,复息年利率9%,实现资金翻番需要多久?
利用“72法则”,将72除以9(增长率),得8,即需约8年时间,投资金额滚存至200元(翻番),而准确需时为8.0432年。
题目:盘子中的菌每小时增长3%,那么其数量多久会翻番?
24小时(3 * 24 =72)
2)pi(π)秒 就是一个纳世纪 10E-7 年;
3)little定律:系统中物体的平均数量等于物体离开系统的平均数率和每个物体在 ...
- 2012-05-14 18:56
- 浏览 1069
- 评论(0)
一,概述
如果要提高软件的性能,需要从下面几个方面入手:
1、算法与数据结构
2、算法调优
3、数据结构重组
4、与系统无关的代码的调优(float取代double)。
5、与系统相关的调优,把经常使用的函数 ...
- 2012-05-14 16:01
- 浏览 944
- 评论(0)
一,概述
主要讲解如何保证编程的正确性。在程序中加入断言(assert(断言内容) //如果错误,则终止程序。否则正常执行)。
typdef //声明自定义类型
typedef int size; //声明int 型整数的别名
size array[4];
typedef struct tagNode
{
char *pItem;
pNode *pNext;
} *pNode;
测试结构题大小的程序
#include "stdio.h"
typedef struct tagNode
{
...
- 2012-05-14 14:46
- 浏览 850
- 评论(0)
1、对下标限定界限:加条件 0<=l u<=n-1
2、这个函数可以写成如下形式:
#include <iostream>
using namespace std;
int bs(int *a, int begin, int end, int v)
{
int *b = a + begin; //开始
int *e = a + end; //结束
int *mid = NULL; //中间
while (b < e) //直到等于第一个出现的值
{
mid = b ...
- 2012-05-14 09:25
- 浏览 1016
- 评论(0)
一,C++输入和输出的概述
1)流和缓冲区
流是程序和源流或流目标之间的桥梁
磁盘驱动器以512字节(或更多)的块为单位传输信息,程序通常每次只能处理一个字节信息。所以缓冲区用来匹配这两种不同的信息传输速率。
输出时,先填满缓冲区,然后把整块数据传输给硬盘,并清空缓冲区,以备下一批输出使用。
2)isotream类管理细节
cin 对象对应于标准输入流,关联到标准输入设备。wcin 对应 wchar_t
cout 标准输出流,wcout 对应 wchar_t
cerr 标准错误流,没有缓冲直接发送给屏幕,而不会等到 ...
- 2012-05-14 09:24
- 浏览 1155
- 评论(0)
一,内容
通过使用恰当的数据结构来替代复杂的代码。
二,习题
1、题目描述:本书出版之时,美国的个人收入所得税分为5种不同的税率,其中最大的税率大约为40%.以前的情况则更为复杂,税率也更高。下面所示的程序文本采用25个if语句的合理方法来计算1978年的美国联邦所得税。税率序列为0.14, 0.15, 0.16, 0.17, 0.18.....。序列中此后的计算大于0.01.有何建议呢?
if income <= 2200
tax = 0;
else if income <= 2700
tax = 0.14 * (income - 22 ...
- 2012-05-12 23:42
- 浏览 847
- 评论(0)
一,三个问题
A题:给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。
1、在文件中至少存在这样一个数?
2、如果有足够的内存,如何处理?
3、如果内存不足,仅可以用 ...
- 2012-05-12 00:27
- 浏览 865
- 评论(0)
关于扩展的卡特兰数:1.(n-m+1)/(n+1)*c(n+m,n)
2.c[n+m][n]-c[n+m][m-1]Catalan,Eugene,Charles,卡特兰(1814~1894)比利时数学家,生于布鲁日(Brugge),早年在巴黎综合工科学校就读。1856年任列日(Liege)大学数学教授,并被选为比利时布鲁塞尔科学院院士。
卡特兰一生共发表200多种数学各领域的论著。在微分几何中,他证明了下述所谓的卡特兰定理:当一个直纹曲线是平面和一般的螺旋面时,他只能是实的极小曲面。他还和雅可比(Jacobi,C·G·J)同时解决了多重积分的变量替换问题,建立了有关的公式。
1842年 ...
- 2012-05-11 15:33
- 浏览 905
- 评论(0)
一,题目:
如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万。实际上这个需要1.25MB的内存空间。
1MB总共有838,8608。所以估计也可以在1MB左右的空间里面进行排序了。
二,分析:
1)基于磁盘的归并排序(耗时间)
2)每个号码采用32位整数存储的话,1MB大约可以存储250 000 个号码,需要读取文件40趟才能把全部整数排序。(耗时间)
3)位图法,采用一个1千万位的字符串表示每个数,比如{0,2,3}表示为 1 0 1 1 0 0 0 0 。遍历每一个整数,有则标记为1,否则标记为0。然后按顺序输出每个整 ...
- 2012-05-10 23:26
- 浏览 802
- 评论(0)
一,生成函数与递推
递推关系举例
【例1】Hanoi问题:这是个组合数学中的著名问题。N个圆盘依其半径大小,从下而上套在A柱上,如下图示。每次只允许取一个移到柱B或C上,而且不允许大盘放在小盘上方。若要求把柱A上的n个盘移到C柱上请设计一种方法来,并估计要移动几个盘次。现在只有A、B、C三根柱子可用。
|
| |
|
| |
A
B
- 2012-05-09 14:16
- 浏览 890
- 评论(0)
一,返回单位为毫秒
#include<windows.h>
DWORD dwStart = GetTickCount();
// 测试代码
DWORD dwTime = GetTickCount() - dwStart;
注意:GetTickCount()精确度有限,跟CPU有关,一般精确度在16ms左右,最精确也不会精确过10ms,这就是说如果你的时间间隔在16ms以内的话,两个时间相减为0,如果大于16ms且小于32ms的话,两个时间相减为16ms(也不完全严格,有的时候会是15或者17,根据当时CPU的处理情况而定)。其实也就是说你得到的这个差是实 ...
- 2012-05-07 23:23
- 浏览 1958
- 评论(0)
一,组合数学问题
1)排列定义
• 从n个不同的元素中,取r个不重复的元素,按次序排列,称为从n个中取r个的无重排列。
•排列的全体组成的集合用P(n,r)表示。当r=n时称为全排列。
组合定义
• 定义从n个不同元素中取r个不重复的元素组成一个子集,而不考虑其元素的顺序,称为从n个中取r个的无重组合。
- 2012-05-06 21:08
- 浏览 810
- 评论(0)
题目:设计一个高效算法,求两个等长为L的升序序列A和B
的中位数。
例如:S1=(11,13,15,17,19)
S2=(2,4,6,8,20)
则S1和S2的中位数是11。
1)问题分析1:
简单的算法是将两个升序序列归并排序,然后求其中位数
算法的时间复杂度和空间复杂度均为0(n)
2)问题分析2
- 2012-05-06 16:56
- 浏览 788
- 评论(0)
一,例题:找出n个自然数(1,2,3,…,n)中r个数的组合。
•例如,当n=5,r=3时,所有组合为:
12 3 1 2 4
12 5 13 4
13 5 14 5
23 4 23 5
24 5 34 5
total=10 {组合的总数}
•算法设计
1)n个数中r的组合,其中每r个数中,数不 ...
- 2012-05-06 16:12
- 浏览 668
- 评论(0)
面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。
问题一:“请你自我介绍一下”
思路:
1、这是面试的必考题目。
2、介绍内容要与个人简历相一致。
3、表述方式上尽量口语化。
- 2012-05-06 14:09
- 浏览 567
- 评论(0)