摘要: 把t在数组x中第一个出现的位置返回给p(如果存在多个t的话,原始的算法会任意返回其中的一个),要求代码对数组元素进行对数次比较(该任务可以在log2(n)次比较之内完成)。1、迭代版本 1 public static int bSearch_Iteration(int t,int left,int right){ 2 int mid; 3 while(left<=right){ 4 count2++; 5 mid=(left+right)/2; 6 if(a[mid]==t){ 7 ... 阅读全文
posted @ 2013-05-13 21:19 Dream-Weaver 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 输入/输出处理是程序设计中非常重要的一部分,比如从键盘读取数据、从文件中读取数据或向文件中写数据等等。 Java把这些不同类型的输入、输出源抽象为流(stream),用统一接口来表示,从而使程序简单明了。 Jdk 提供了包java.io,其中包括一系列的类来实现输入/输出处理。下面我们对java.io包的内容进行概要的介绍。1.字节流: 从InputStream和OutputStream派生出来的一系列类。这类流以字节(byte)为基本处理单位。 ◇ InputStream、OutputStream ◇ FileInputStream、FileOutputStream ◇ Pipe... 阅读全文
posted @ 2013-05-13 15:08 Dream-Weaver 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 一、等价类划分 等价类划分主要适用于单个输入条件,输入为数值型的情况,如果输入规定了输入区间,可划分出一个有效等价类,两个无效等价类;如果输入只规定了输入范围,可划分出一个有效等价类,一个无效等价类。二、边界值 边界值方法也是适用于单个输入条件的情况,输入类型可以数值、字符等,要测试的边界包括上点、下点、离点。三、错误推测法 错误推测法主要是测试设计人员的测试经验相关,测试经验不同,设计出来的测试用例也区别很大。四、因果图法 因果图方法考虑输入的组合,特别适用于多个输入条件相关有关联又相互约束的情况。 设计步骤: 1)罗列出输入与输出; 2)根据输入与输出画出因果图; 3)标出约束跟限制; 4 阅读全文
posted @ 2013-05-10 10:00 Dream-Weaver 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 引言:白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。1.白盒测试的概述由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种 阅读全文
posted @ 2013-05-10 09:56 Dream-Weaver 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 本文将向各位介绍如何使用MySql5.x中的空间数据库,并展示一下它高效的性能(前提是正确使用)。步骤1:创建支持空间查询的表首先来说一下如何创建一个包含空间数据的名为Points的表。CREATE TABLE `points` (`name` varchar(20) NOT NULL DEFAULT '',`location` point NOT NULL,`description` varchar(200) DEFAULT NULL,PRIMARY KEY (`name`),SPATIAL KEY `sp_index` (`location`)) ENGINE=MyISAM 阅读全文
posted @ 2013-05-09 13:18 Dream-Weaver 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。范式说明1.1第一范式(1NF)无重复的列所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含 阅读全文
posted @ 2013-05-08 16:22 Dream-Weaver 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 一、基本描述1、RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论,是Rational软件公司(Rational公司被IBM并购)创造的软件工程方法。RUP描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程(也被称作厚方法学),因此特别适用于大型软件团队开发大型项目。(PS:基本上不适合于国内中型和小型软件机构)2、软件工程领域,与RUP齐名的软件方法还有:净室软件工程(重量级)、CMMI(重量级);极限编程(extreme programming,简称 XP)和其他敏捷软件开发(agile me 阅读全文
posted @ 2013-05-07 10:47 Dream-Weaver 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class data13{public static void main(String[] args){int a=129;int b=128;System.out.println("a 和b 与的结果是:"+(a&b));}}运行结果a 和b 与的结果是:128下面分析这个程序:“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只 阅读全文
posted @ 2013-05-05 20:32 Dream-Weaver 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 最近老是碰到递归算法的题目,典型的可能就是字符或者数字的全排列问题了,例如输入123,得到全排列有123、132、213、231、312、321六种首先考虑213与321:这个两个数是通过1与后面两个数交换得到的然后考虑将123,213,321三个数的后两位交换得到132,231,312综上可以得到全排列就是从第一个数字起每个数分别与他后面的数字交换核心代码如下:1 for(int i=first;i<b.length;i++){ 2 temp=b[i];b[i]=b[first];b[first]=temp;3 fullArray(b,a,first+1... 阅读全文
posted @ 2013-05-05 20:31 Dream-Weaver 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 序列化是什么: 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。Java的序列化机制是RMI、EJB、JNNI等技术的技术基础。 序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例序列化的什么特点: 如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象... 阅读全文
posted @ 2013-04-23 23:54 Dream-Weaver 阅读(321) 评论(0) 推荐(0) 编辑