10 猫咪的晴天

尚未进行身份认证

人,不能没有理想

等级
TA的排名 2w+

分治法在归并排序和快速排序中的应用

归并排序归并排序和快速排序都使用了“分治”策略(divide-and-conquer)。对于数组A[p..r],归并排序先把数组从中间分开,形成两个具有(p+r)/2个元素的子数组(divide);然后,分别对这两个子数组递归地进行归并排序(conquer),当子数组只包含一个元素时到达递归出口;最后,将两个排好序的子数组合并起来,形成有序数组(combine)。 归并排序算法如下:ME

2016-05-22 23:15:13

递归和回溯题目四则

递归和回溯本文是对斯坦福大学公开课《抽象编程》第10课内容的总结。递归打印一个字符集合的全排列。 要解决这个问题,可以先模拟一下全排列的过程。假设字符集是“ABCD”:首先,从“ABCD”中任选一个字符作为排列结果的第一个字符,例如,我们可以先选择“A”作为第一个字符;一旦第一个字符确定下来,可以对所有剩下的字符进行全排列,并把得到的排列结果附加在刚才选定的第一个字符“A”之后,就

2016-05-05 22:54:37

利用C++实现插件系统

利用C++实现插件系统插件机制能够方便地扩展已有应用程序的功能。用C++实现插件机制的基本思路是:应用程序提供接口,由用户或第三方实现这些接口,并编译出相应的动态链接库(即插件);将所有插件放到某个特定目录,应用程序运行时会自动搜索该目录,并动态加载目录中的插件。应用程序提供接口为了实现功能扩展,应用程序必须向插件提供接口。在base.h中定义一个抽象类Base作为接口:#ifndef BASE_H

2016-04-17 22:32:40

Twisted中的putChild和getChild

Twisted的官方文档上对于putChild的解释是“Register a static child”(点击打开链接),即为当前资源节点注册一个静态子资源节点。实际上,Resource类中的putChild实现的是IResource接口中的putChild方法(点击打开链接)。    Resource类中还有一个getChild方法,官方文档的解释是“Retrieve a 'child' r

2016-03-05 21:03:26

Visual Studio 2008编译机器学习算法库Shark

本文描述了Windows 7(64位)上基于Visual Studio 2008编译和安装开源C++机器学习库Shark的完整过程,并对安装过程中产生的问题进行说明。该过程依赖于CMake和Boost。

2015-04-01 10:49:47

初学Redis(1)——认识Redis

Redis是一种

2014-09-26 09:54:16

初学Redis(4)——简单实现Redis缓存中的排序功能

在实现缓存排序功能之前,必须先明白这一功能的合理性。不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应用;其次,在缓存中排序不会遇到表锁定的问题。Redis恰好提供了排序功能,使我们可以方便地实现缓存排序。        Redis中用于实现排序功能的是SORT命令。该命令提供了多种参数,可以对列

2014-09-25 15:29:54

初学Redis(3)——用Redis作为Mysql数据库的缓存

把Mysql结果集缓存到Redis的字符串或哈希结构中以后,我们面临一个新的问题,即如何为这些字符串或哈希命名,也就是如何确定它们的键。因为这些数据结构所对应的行都属于某个结果集,假如可以找到一种唯一标识结果集的方法,那么只需为这些数据结构分配一个唯一的序号,然后把结果集标识符与该序号结合起来,就能唯一标识一个数据结构了。于是,为字符串和哈希命名的问题就转化为确定结果集标识符的问题。     

2014-09-24 19:06:09

初学Redis(2)——用Redis作为Mysql数据库的缓存

关于怎样用Redis作为数据库缓存

2014-09-24 15:56:34

一道关于字符串指针的趣题

某日,有人问我y

2014-08-27 20:15:36

oracle instant client,tnsping,tnsnames.ora和ORACLE_HOME

前段时间要远程连接oracle数据库,但是又不想在自己电脑上完整安装oracle客户端,于是到oracle官网下载了轻量级客户端instant client。这玩意没有图形界面,全靠sqlplus远程连接服务器,所以不占地方,正好满足我这种追求“简单就好”的强迫症患者需求。但是呢,可能是服务器那边没开监听端口,我在自己的机子上尝试了各种配置,包括tnsnames.ora,sqlnet.ora等

2014-07-10 19:41:37

C++ 虚函数的缺省参数问题

前些日子,有个同学问我一个关于虚函数的缺省参数问题。他是从某个论坛上看到的,但是自己没想通,便来找我。现在分享一下这个问题。先看一小段代码:#include using namespace std;class A { public: virtual void Fun(int number = 10) { cout << "A::Fun

2014-07-10 00:05:05

抽象类与接口的区别及应用(本文由张洋提供)

抽象类(Abstract Class)与接口(Interface)是面向对象程序设计中两个重要的概念。由于两者在自身特性及应用方法上存在诸多相似性,如都不能实例化、都可以被继承(严格来说对于接口应该叫做实现),这么一来,在许多人心中抽象类与接口的界限非常模糊,对何时该使用抽象类、何时该使用接口更是感到困惑。本文的目的是通过对两者的讨论与比较,帮助读者认清抽象类与接口在思想本质及应用场合方面

2014-05-17 11:11:50

关于找不到gsl共享库的问题

GSL,也就是大名鼎鼎的GNU Scientific Library,

2014-05-12 19:07:36

ubuntu下ATI显卡驱动问题

昨天给我的ubuntu12.04安装了不少更新,重启之后,问题出现了:开机之后出现奇怪的提示“The system is running in low-graphics mode”,如下图所示:我点了ok,出现了下面的画面:走到这一步,无论我按什么键,电脑统统没反映。好吧,让我们消灭这个问题!       很明显,问题出在我的ATI显卡驱动上。既然图形界面进不去,咱们就直接命令

2013-12-15 21:44:20

‘PitchMatrix3D’不是‘Matrix3D’的成员——linux下编译碰撞检测包ColDet

ColDet是一个非常著名的开源碰撞检测包。我下载之后,使用包中自带的makefile.g++编译它,出现了一些bug:g++ -c -O2 -DGCC coldet.cppIn file included from box.h:28:0, from coldetimpl.h:28, from coldet.cpp:25

2013-01-19 14:23:35

linux下使用gcc编译Nate Robin的OpenGL教程

按照OpenGL编程指南的建议,我决定看一下Nate Robin的OpenGL教程,更确切地说,是编译运行该教程给出的transformation.c。虽然该教程已经给出了可以在windows下直接运行的exe文件,但是,请相信我,离开windows,在linux下用OpenGL会有不一样的感受。     其实,我是来帮你消灭bug的。      曾经以为,编译这个transfor

2013-01-12 10:36:22

GCC编译过程

原文来自博客园,http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421021.htmlgcc的编译流程分为四个步骤,分别为:· 预处理(Pre-Processing)· 编译(Compiling)· 汇编(Assembling)· 链接(Linking)以hello.c为例子,在这四个步骤中可以设置选项分别

2013-01-12 09:29:13

No command 'setenv' found

今天又遇到一个能够充分证明自己是菜鸟的问题。    我要在ubuntu12.04下编译安装OpenInventor。阅读OpenInventor官方提供的说明README.FIRST,里面用到了一个命令:setenv。我在终端下敲setenv,提示No command 'setenv' found, did you mean: Command 'netenv' from package

2012-10-21 20:23:27

动态二维数组按下标访问

下面的代码先申请一个动态二维数组,然后按照下标访问其中的元素。这是个很简单的问题,我只是想强调一下,顺便辟谣。因为之前看网上某些文章说c++申请动态二维数组是不能按照下标访问的,还要经过自己将下标转换为相对地址,理由是动态申请的二维数组,虽然行内存储空间连续,但是行间不连续。下面的代码告诉你,你可以放心地使用下标,经过测试的,没问题。#include using namespace std

2012-09-30 11:16:37

查看更多

勋章 我的勋章
    暂无奖章