- 博客(16)
- 资源 (10)
- 收藏
- 关注
原创 快速傅里叶变换及其实现
一、基本原理长度为N的有限长离散序列的傅里叶变换的定义为: (1)逆变换: (2)其中,(3) 用矩阵来表达傅里叶变换为: (4)逆变换:
2013-12-01 22:50:52 1517
原创 利用Boost.Python将C++代码封装为Python模块
用Boost.Python将C++代码封装为Python模块一. 基础篇借助Boost.Python库可以将C/C++代码方便、快捷地移植到python模块当中,实现对python模块的扩充。首先,将C++下的代码编译为动态库,并将生成的动态库命名为封装模块的名字,如:用BOOST_PYTHON_MODULE(Module_Name)宏对需要导出的函数、全局变量、类等导入Pyt
2012-07-21 02:43:18 14703 3
原创 Java并发编程-上
一、线程1 线程的创建创建线程通常有两种方法: 1) 扩展Thread类实现线程的创建是最常用也是最直接的一种方法,通过继承类Thread实现线程体;2) 通过实现Runnable接口实现线程体。2 Thread类的几种构造函数 1) Thread() 2) Thread(Runnable target) 3) Thread(Runnable target
2010-04-28 21:01:00 2032
原创 Java包的创建和使用
包是Java语言提供的一种区别类名字命名空间的机制,它是类的一种文件组织和管理方式、是一组功能相似或相关的类或接口的集合。Java package提供了访问权限和命名的管理机制,它是Java中很基础却又非常重要的一个概念。 一、包的作用1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不
2010-04-23 11:57:00 20026 1
原创 深入理解Java接口(一)
一、Java接口的基本内容[1].Java编程语言中不支持多重继承(即Java中一个类不能有多于一个的直接父类),但可以实现多个接口,这就间接地实现了多重继承。[2].接口(Interface)将产生一个完全抽象的类,它是用来建立类与类之间的协议的,其内部只提供调用方法的形式(创建者确定方法名、参数列表及返回类型),而没有提供任何具体的方法体。具体的实现方法(该接口中的所有方法)需要在遵循
2010-04-09 17:42:00 4397 3
原创 Java多态
在面向对象的程序设计(OOP)语言中,多态(又称动态绑定、后期绑定或运行时绑定)与继承是两个基本的特征。继承允许将对象当作它自己的类型或其基类来进行处理,而多态则可以消除不同类型之间的耦合关系,多态方法调用允许一种类型表现出与其他从同一基类导出类型之间的区别。 一、动态绑定的理解在java中,将一个方法调用与一个方法主体关联起来叫做绑定,当程序运行之前就进行绑定的行为叫前期绑定;然
2010-04-07 20:37:00 1174 1
原创 有关Java中关键字final的理解
一、final数据在java编程语言中,有时候需要告知编译器一段数据是不变的编译期常量。对于这种情况,编译器可以将此常量值带入需要用到它的计算式子当中,这种在编译时执行计算式的方法减轻了运行时的开销。通常,这类常量数据都是基本类型的数据,并赋予关键字final,同时在对此常量定义时需要进行赋值。值得注意的是:对于基本类型,使用final关键字将使数值恒定不变;而对于对象引用,final则是
2010-04-06 10:19:00 10962 3
原创 关于java中类的组合与继承语法小结
在面向对象编程语言中,继承和组合是两个很关键的问题,二者在语法和形式上有很多的相似之处。此处,仅对二者的用法做一个小结[1]。一、组合语法组合仅需将对象引用置于新类中即可,比如:// SprinklerSystem.javaclass WaterSource{ private String s; WaterSource() {
2010-04-05 22:07:00 7688 2
原创 Java编程语言中的数据初始化问题小结
在java编程语言中,所有变量在使用之前都必须尽量保证得到了合理的初始化,对于函数中的局部变量则以编译时的错误来提醒数据没有初始化。比如:void f(){ Int j; j++;//此处会给出一个编译错误:j没有初始化}然而,若类的数据成员是基本类型,则每个基本类型数据成员都会得到一个初始值;在类中定义一个对象引用时,如果没有对其进行初始化,则
2010-04-04 21:30:00 1966 1
原创 汇编指令jmp的理解
汇编指令jmp的理解 在学习汇编语言的时候遇到下面一段代码,起初简单地认为这个程序是不能正常结束的。但是经过debug单步跟踪之后,发现程序是能正常结束的,且出现了一种奇怪的现象:当程序从code:0005处开始执行到code:0014后,继续jmp指令跳到code:0008。然而,继续往前执行一步时,程序直接跳转到了code:0处,而不是预先想象的跳到code:0018(即标号s1段处
2010-01-02 10:24:00 15742 1
原创 关于类成员函数指针的调用问题
关于类成员函数指针的调用问题 在学习二叉树的时候,定义了一个二叉树类BinTree。类中定义了按不同顺序遍历二叉树的成员函数(如前序遍历函数PreOrder(void(*visit)(BTNode* p))),其形参列表中使用了一个指向访问函数Travse(BTNode* p)的*visit指针。当按照如下方式定义类的两个成员函数PreOrder、Travse时:template
2009-12-03 17:23:00 2367
原创 用递归和栈的方法实现N皇后求解
N皇后问题的栈和递归实现方式 八皇后问题:初始状态下,国际象棋棋盘上没有任何棋子。顺序的在棋盘上的第一行、第二行、…、第八行上面布放棋子。每一行的八个位置可以放置皇后,要求任意时刻,棋盘的合法布局满足三个条件,即任何两个棋子不得摆放在棋盘上的同一行、同一列及同一对角线上。当棋盘的大小为N时,就变成了N皇后问题。解决这个问题,最简单的办法是用递归,也可以借助栈来加以实现。用递归的办
2009-11-12 21:06:00 2986
原创 全排列的递归实现
全排列的递归实现N个互不相同的元素的全排列一共有N!种,实现N个互不相同的元素的全排列可以用递归的方法来实现。当N=1时,全排列为1;当N=2时全排列为1,2和2,1。当N=3时,全排列为1,2,3;1,3,2;2,1,3;2,3,1;3,1,2;3,2,1共3!=6种排法…观测发现,当N=1时,全排列就为1;当N>1时,将序列 的首个元素 提出来,将剩下的N-1个元素 进行全排列,
2009-11-12 21:02:00 1169
原创 数字迷宫思考-下
数字迷宫思考-下-----用递归的方法实现数字迷宫数字迷宫,可以用栈和递归的方法实现。通常情况下,递归都比较容易实现,因此,试着用递归的方法来实现数字迷宫游戏。虽然递归相对比较简单,但是,当递归次数较多时,可能会造成代码空间的增大;另外,在最后显示通路路径的时候,存在一个问题:显示只能从出口到入口倒着显示路径信息,这是不方便的。不过,将递归当着一种方法来解决问题,也是值得尝试的。下附上数字
2009-11-07 16:38:00 740
原创 数字迷宫思考-上
数字迷宫思考-上 ----用栈的方法实现 数字迷宫游戏,可以用递归和栈的方法来实现穷举搜索通往出口的路径。实现的过程中,需要建立一个表示迷宫的二维数组,数组中的每个元素用0、1表示,0为此节点是通路,1表示断路,不能继续前行。迷宫的四周都是1表示的墙,只有一个入口和一个出
2009-11-07 11:11:00 1133
原创 约瑟夫问题的循环单链表实现
约瑟夫问题,就是指n个人围成一圈,每个人都有一个1~n内唯一的编号。根据游戏规则,从第s号的人开始数1,2,3..,数到第m号的那个人将被淘汰出局,然后又从第m+1个人开始数1,2,3...,如此反复,直到最后只剩下一个人的时候游戏才结束。现在根据游戏人数n,号码间隔m和起始号码s,求游戏结束时那个人的号码。 这个问题是数据结构中非常基础,也是很简单的一个问题:用一个不带附
2009-11-01 18:51:00 2186
利用Boost.Python将C++代码导入到Python模块
2012-07-21
链表、递归等数据结构代码
2010-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人