- 浏览: 232009 次
最新评论
-
naouguhtaeyeti:
当台阶数大时,这个用递归效率太低
【100题】第二十七 跳台阶问题
文章列表
一、女浴室起火,里面人乱作一团,赤身往外跑,只见大街上白花花一大群,一老者大喊“快捂住”,众裸女突然醒悟,但身上要紧部位有三处,手忙脚乱捂不过来,不知所措。这时老者又大喊:“捂脸就行,下面都一样!”【 ...
- 2012-05-21 18:05
- 浏览 619
- 评论(0)
一,简介
conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
大部分DOS,Windows 3.x,Phar Lap,DOSX,OS/2 or Win32平台上的C编译器提供此文件,UNIX 和Linux平台的c编译器通常不包含此头文件。
二,在ubuntu 环境下安装测试并使用conio
【说明】这个版本的库 是在网上查找。只为了测试 textcolor 。后来查看源码发现,conio中很多函数不全。所以要想更进一步使用con ...
- 2012-05-21 16:02
- 浏览 2443
- 评论(0)
MAP容器
1)概念:map 是一个容器,它用于储存数据并且能从一个数据集合中取出数据。它的数据组成包含两项,一个是它的数据值,一个是用于排序的关键字。其中关键字是惟一的,它用于将数据自动排序。而每个元素的数据值与关键字无关,可以直接改变。
【重点】内部结构采用RB_TREE(红黑树)。查找复杂度:O(log2N)
2)使用
需加载的头文件: #include<map>
using namespace std;
模板原型:
temp ...
- 2012-05-21 14:55
- 浏览 1160
- 评论(0)
一,全排列算法
由于这部分十分重要,这里再次做一下总结。
更多详细内容参考博文组合数学-全排列
二,算法思想
这里采用递归算法,思路如下
固定第一个数,然后处理后面n-1的全排列。
第一个数的可能性有n种,故采用for循环依次将后面n-1个数swap到前面,递归处理。处理完成之后再交换过来。
例如:1 2 3 : 固定1 然后全排列 2 3
swap(2,2)(固定2) 然后全排列 3 //输出 1 2 3
swap(2,3)(固定3) 然后全排列2 ...
- 2012-05-21 10:18
- 浏览 735
- 评论(0)
一,概念
1、 Lucene相关排序流程
找到关键词匹配的文档集合---->文档集合每个文档计算检索相似度----->对文档集合进行排序
2、 Lucene相关类
① Query类:一个抽象类, Lucene检索结果最终评分的总控制中心。其它评分有 ...
- 2012-05-19 23:52
- 浏览 837
- 评论(0)
最近在帮同学弄一个东西,无奈需要研究一下lucene,在这里笔记一下叨。大牛绕行……
一,环境搭配
下载lucene 2. 9.4解压到任何一个地方。
然后在IDE中新建一个Java工程,将之前解压的文件夹下的lucene-core-2.9.4.jar 添加 ...
- 2012-05-19 23:46
- 浏览 688
- 评论(0)
一,概述
问题描述:如何生成0~n-1内的m个随机整数(不重复)
需求:按序输出,并且保证每个子集被选中的可能性相等。
1)给出下面代码
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void getRandNumber(int m,int n)//在0 -- n-1 中挑选m个 随机数
{
srand(time(NULL));//这个很关键
int i,j;
for(i=0;i<n;++i)
{
...
- 2012-05-19 17:42
- 浏览 926
- 评论(0)
一,概述
1)插入排序
要找到合适的位置,需要判断前一个元素比t小而后一个元素比t大。然后将t插入正确位置。
比较a[j-1] 跟 a[j] 的关系很关键
isort1: 没有到达最终位置,就交换该元素和它前面的元素
#include <algorithm>
for(int i=1;i<5;i++)
for(int j=i;j>0&&a[j-1]>a[j];j--)
swap(a[j-1],a[j]); isort2:将库函 ...
- 2012-05-18 11:07
- 浏览 671
- 评论(0)
一位同学,毕业季找工作。
有意向的公司好几家,其中一家开出的条件最优厚,解决户口,底薪就抵得上别家单位的合计收入。更重要的是,还分房子、配车,但这一切都是有条件的,合约上写明,“要为公司服务20年” ...
- 2012-05-17 22:11
- 浏览 546
- 评论(0)
一,概述
1)节省空间带来的好处
程序变小使得加载更快;更容易读入高速缓存;需要操作的数据减少从而减少操作时间。
2)节省空间的方法
数学函数式替代要存储的数据。简单例子为:a[i]=i 。如果你要 ...
- 2012-05-17 16:55
- 浏览 649
- 评论(0)
一,union:C/C++关键字 共用体(联合)
共用体的声明和共用体变量定义与结构十分相似。形式为:
union 共用体名
{
数据类型 成员名;
数据类型 成员名;
...
} 变量名;
共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量.在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍(特别注意数组)
例子一:
union foo{
int i;
...
- 2012-05-17 15:30
- 浏览 1554
- 评论(0)
最近刚换了电脑,开始搭建Android开发环境的时候,下载SDK总是会出现如下错误:
[java]view
plaincopy
- 2012-05-16 22:28
- 浏览 977
- 评论(0)
一,概述
1)代码调优的目的是什么?
减少CPU运行时间;减少分页或增加高速缓存命中率;减少程序所需空间
2)代码调优为什么不能“滥用”?
1>效率的角色:不成熟的优化是大量编程灾害的根源,可能危及程序正确性、功能及可维护性。
2>度量工具:利用性能检测工具,找到“热点”代码,即程序关键区域,然后优化。
3>设计层面:效率问题可以从多个方面进行解决(算法和数据结构、数据结构重组、硬件升级),只有没有更好的解决方案才进行代码优化。
4>双刃剑:有些优化在特定程序中可以提速,但 ...
- 2012-05-15 23:23
- 浏览 753
- 评论(0)
一,内联函数的用法
内联函数从源码层层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。
inline Tablefunction(int I) //是没有效果的,编译器只是把函数作为普通的函数申明,我们必须定义函数体。
Inline tablefunction(int I) {return I*I}; //这样我们才算定义了一个内联函数。我们可以把它作为一般的函数一样调用。但是执行速度确比一般函数的执行速度 ...
- 2012-05-15 17:39
- 浏览 719
- 评论(0)
一,概述
问题:求一维数组中连续子向量的最大和。
例如:a[6]={3,4,-2,-9,10,8}; 则最大连续子向量的和 为 10+8 = 18
1)解法一:简单算法
#include <stdio.h>
#define max(a, b) ((a)>(b)?(a):(b))
int main()
{
int a[6]={3,4,-2,-9,10,8};
int i,j,k;
int sum=0;
int maxsofar=0;
for(i=0;i<6;++i)
{
for(j=i;j& ...
- 2012-05-15 10:49
- 浏览 944
- 评论(0)