自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

如果这是你所爱的,要坚持,并踏实。

你先要相信,你才能做到。

  • 博客(35)
  • 资源 (7)
  • 收藏
  • 关注

原创 搜索算法:爬山法

爬山法是深度优先搜索的改进算法。在这种方法中,使用某种贪心算法来帮助我们决定在搜索空间中向哪个方向搜索。由于爬山法总是选择往局部最优的方向搜索,所以可能会有“无解”的风险,而且找到的接不一定是最优解。但是他比深度优先搜索的效率要高很多。主要的算法描述如下:

2010-08-31 20:07:00 6506

原创 POJ1184Clerver_Writer:广度优先搜索

这是一道poj1184的题目,由于求解的是最优解,所以首先想到的就是使用广度优先搜索。

2010-08-31 15:38:00 1933

原创 string类的一些成员函数

1、const char *data();data()函数返回指向自己的第一个字符的指针. string str3="you are stupid!"; char* cc=(char*)str3.data(); *(cc+1)='n'; cout由于data()函数返回的是const char*,所以不能直接通过指针修改返回的字符串的值,如果要修改,必须把类型转化为char*.2、const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本字符串相同. 作

2010-08-30 22:31:00 2027

原创 华容道游戏:广度优先搜索优先搜索

华容道游戏是非常经典的BFS应用的题目。下面是几个我参考过的链接:使用java语言实现,充分体现OOAD和数据结构的应用,讲的非常详细,但是太过于复杂了:http://www.cppblog.com/tx7do/archive/2006/09/18/12691.html简单版本的介绍,非常有用,而且有完整的源代码:http://blog.chinaunix.net/u/19651/showart_395172.html虽然讲的详细,但是代码也成这副样子,值得同情:http://www.fjptsz.com/

2010-08-30 21:34:00 2903 1

原创 记忆化搜索的研究

记忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。 一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。 更重要的是搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多。 记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必重新求解了。这种方法综合了搜索和动态规划两方面的优点,因而还是很有实用价值的。上传/更换附件动态规划的另一种实现形式——记忆化搜索的应用

2010-08-29 14:40:00 6909 1

转载 POJ1085 The Triangle War: 记忆化搜索

这是一道关于博弈的题目。我从中得到如下的体会:使用动态规划的方法来解答要比使用极大极小搜索算法,在速度上要快得多。因为极大极小搜索策略每次都要对当前的局面进行某个最大深度的搜索,从中选取出最佳的走法。这样其实是非常耗时的。由于这道题目的本身特点,如果使用动态规划的话,根据dp的思想就是保存搜索过程中的所有状态。在dp的搜索过程中,每次都是非常彻底的搜索,而且由于状态已经描述清楚并记录下来,如果产生了相同的状态,就可以直接使用,这样速度是很快的。但是从这道题目可以开出,dp中状态的描述需要进行保持程序设计的简

2010-08-28 22:53:00 2542

原创 机器博弈:tic-tac-toe游戏

<br />下面是我写的一个tic-tac-toe的简单游戏。<br /> <br />我主要的思路是使用极大极小的搜索策略。并且体会到博弈程序的好坏很大程度上取决于局面评估函数的好坏。<br />因为机器方希望在所有下一步可以下子的集合中,选择最优的步法。这是就需要就局面进行评估,需要附加一些知识,而局面的评估值可以是所有这些知识评估的结果之和。<br /> <br />评估函数和程序对局面的搜索速度是成反比的。<br /> <br /> <br />我的程序中评估函数比较弱。<br /> <br />主

2010-08-28 20:11:00 1262

原创 Android:SQLiteOpenHelper

public abstract classSQLiteOpenHelperextends Object<br />Class Overview<br />A helper class to manage database creation and version management. You create a subclass implementing onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int) and optiona

2010-08-25 11:35:00 1255

原创 POJ1924 The Treasure

问题描述:这道题目类似于RPG游戏,player的目标是在被monster吃掉之前,拿到treasure。在游戏中,monster分为aggressive和non-aggressive两种,有不同的吃人能力。player可以run或walk,时间消耗是一样的。要求:求出最短拿到treasure的时间。主要的思路是这样的:使用A*搜索算法,比普通的广度搜索速度上要快一点,但算法上复杂了一些。                               在程序设计中使用面向对象的思想。源代码如下:Player类

2010-08-24 21:18:00 1638

原创 linux内核的烧写

<br />在linux内核移植过程中,需要将linux内核烧写到开发板上。<br /> <br />基本的步骤是:<br />1、将bootloader通过J-TAG烧写到开发板上,而一般bootloader与硬件密切相关,硬件厂商都会提供这样的板级支持包。<br />不同的bootloader会提供不同的bootloader命令,一般都是可以通过help进行查看的。<br /> <br />2、将linux内核通过tftp传输到RAM中,注意在宿主机-开发板的开发环境中,PC主机充当的是tftp的服务器

2010-08-24 10:47:00 7237

原创 请永远相信自己的努力、实力和运气

<br />请永远相信自己的努力、实力和运气

2010-08-20 13:24:00 1066

原创 Android:Parcelable/Bundle/IBinder

public interface ParcelableClass OverviewInterface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must also have a static field called CREATOR, which is an object implementing the Par

2010-08-20 11:53:00 3049

原创 Android:BroadcastReceiver

public abstract class BroadcastReceiverextends ObjectClass OverviewBase class for code that will receive intents sent by sendBroadcast(). You can either dynamically register an instance of this class with Context.registerReceiver() or statically publish an

2010-08-20 10:34:00 5297

原创 Android:Service

public abstract classServiceextends ContextWrapperimplements ComponentCallbacksClass OverviewA Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or

2010-08-19 20:26:00 1590

原创 java:正则表达式匹配

<br />1、java中的正则表达式匹配<br /> <br />例子如下:<br /> <br />import java.util.regex.Matcher;<br />import java.util.regex.Pattern;<br />public class WanWan{<br /> <br /> public static void main(String[] args){<br />  <br />  //the standard form:<br />  <br />  //@st

2010-08-19 18:56:00 1008

原创 C++语言中的一些编程技巧

<br />1、如何对复合类型数据构造STL模版的比较函数。<br /> <br />对于通用的STL算法,比如一些排序算法或比较算法,都能够自己定义比较函数。<br />比如下面的形式:<br /> <br />bool compare(Suitor a,Suitor b){    //binary predicate,注意比较函数中的参数一定要是Suitor类型的,不能是Suitor*类型<br /><br /> if( a.height < b.height ) return true;<br /> 

2010-08-18 19:28:00 665

原创 优化程序性能

研究汇编代码是理解编译器以及产生的代码会如何运行的最有效的手段之一。编译器优化代码的限制:1、程序设计中存在“存储器别名使用”的问题。编译器必须假设不同的指针可能指向存储器中相同的位置。2、函数调用(简略了。。。具体看书)

2010-08-17 13:34:00 857

原创 程序设计原则——局部性原理

存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构:CPU寄存器-》高速缓冲存储器-》主存储器-》磁盘-》通过网络连接的其他存储设备。SRAM静态,一般作为高速缓冲存储器。DRAM动态,一般作为大容量的主存储器每次CPU和主存之间的数据传送都是通过一些列的步骤完成的,这些步骤称为总线事务。读事务从主存传送数据到CPU,写事务从CPU传送数据到主存。局部性:一般较好的程序都有较好的局部性,也就是说,它们倾向于引用的数据项邻近于其他最近引用过的数据项,或者邻近于最近自我引用过的数据项。对应的就是空

2010-08-15 20:52:00 5121 1

原创 算法设计——极大极小搜索

极大极小搜索策略一般都是使用在一些博弈类的游戏之中:这样策略本质上使用的是深度搜索策略,所以一般可以使用递归的方法来实现。在搜索过程中,对本方有利的搜索点上应该取极大值,而对本方不利的搜索点上应该取极小值。极小值和极大值都是相对而言的。在搜索过程中需要合理的控制搜索深度,搜索的深度越深,效率越低,但是一般来说,走法越好。极大极小搜索可以分开写,也可以放在一起写。主要的算法步骤如下:1、根据side确定如何初始化best值。2、如果当前深度为0,则调用局面评估函数,返回评估值。(评估函数是根据具体问题设计的)

2010-08-13 22:42:00 9627 5

原创 java学习之 网络编程

<br />package com.java.suting;<br />import java.io.IOException;<br />import java.io.InputStream;<br />import java.net.Socket;<br />import java.util.Scanner;<br />public class SocketTest{<br /> <br /> public static void main(String[] args){<br />  <br />  t

2010-08-12 17:30:00 981

原创 搭建Sipdroid本地开发环境

有时需要将两台电脑直接互联,使得其中一台电脑能够访问另外一台电脑上的服务器。这时就需要准备一根交叉网线。同时将两台电脑的IP地址分配在同一个网段,比如:192.168.0.1和192.168.0.2然后使用一样的netmask。同时在控制面板->管理工具->本地安全策略->本地策略-》用户权限分配-》拒绝从网络访问这台计算机里有没有Gest,有删掉;再看看控制面板-管理工具-本地安全设置-本地策略-安全选项-网络访问:本地帐户的共享和安全模式,选择'经典:本地用户以自己的身份验证',到这里应该就可以正常互访

2010-08-12 13:28:00 3816 10

原创 碰到的一些值得注意的东西

1、C++中产生随机数需要包含的头文件:#include#include设置随机种子:srand( time(NULL) );unsigned int i= rand();注意:rand()函数产生的随机数的范围在0~RAND_MAX之间,RAND_MAX为 0x7fff(32767)2、当使用sizeof操作符要求数组的大小时,可以直接通过sizeof(数组名)来获得整个数组的大小,这里的数组可以是一维数组,也可以是二维数组。3、在某些搜索问题中需要使用hash进行状态判重的时候,一种方法是可以使用set

2010-08-11 21:39:00 794

原创 C++程序设计中的一些效率问题

1、一般使用STL模板会使得程序运行的效率减慢,因为STL模板的一些标准的数据结构都需要分配比较多的内存空间以及上下文切换的开销,有时像vector等容器在程序运行过程中,如果发生容量不足时,它需要重复分配更大的内存,并把原来的内容拷贝过去,这一点是非常耗时的。另外一点,如果使用STL模板尽量使得某个数据结构全局共享,否则的话,每次定义一个局部的数据结构,都要重新分配内存,非常耗时。本质上是这样的概念,尽量在程序运行之前先申请好内存空间,不要在程序运行过程中不断申请,这样系统需要不断地进行上下文切换的开销。

2010-08-10 22:07:00 1096

原创 SipDroid开源软件的研究

1、开发环境的配置下载下来SipDroid源代码后,不能直接导入到eclipse中,否则是无法使用和编译的。首先需要通过command line参照工程目录下的BUILT.txt文件对工程进行update。如:android update project -p . -t 2(这里 -p指的是 --path -t指的是 --target)由于是开源软件,需要版本控制的服务器,可以安装Subclipse(可以参见官网)这样就可以将工程import到eclipse中了。

2010-08-09 21:47:00 11360 3

原创 Android开发之android命令大全

<br /><br />Usage:<br />  android [global options] action [action options]<br />Global options:<br />  -v --verbose  Verbose mode: errors, warnings and informational messages are printed.<br />  -h --help     Help on a specific command.<br />  -s --silent 

2010-08-09 17:29:00 1368

原创 Android:ListActivity之学习

ListActivity是Activity的一个子类。 Class OverviewAn activity that displays a list of items by binding to a data source such as an array or Cursor, and exposes event handlers when the user selects an item. ListActivity hosts a ListView object that can be bound to

2010-08-08 16:39:00 5025 2

转载 android自适应屏幕方向/大小/分辨率

屏幕大小:一:不同的layoutAndroid手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?    其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。二:hdpi、mdpi、ldpi在之前的版本中,只有一个drawable,而2.1版本中有drawable-

2010-08-08 10:48:00 1870 1

转载 Android应用程序全屏显示

<br />如果要让程序全屏显示,也就是没有标题栏(title bar)和系统的状态栏,可以在Activity的onCreate方法中加入如下的两行代码:<br />  getWindow().requestFeature(Window.FEATURE_NO_TITLE);<br />  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);<br

2010-08-08 10:34:00 1814

原创 图论相关知识和算法

1、无向图:简单路径(不存在节点到自身的loop)有向图:回路(cycle),没有回路的有向图称为acyclic,有时简称为DAG。无向图:如果任意两个节点之间存在一条路径,就成为连通。有向图:上述性质称为强连通。不能满足上述性质,但有向图对应的底图(去掉方向后的有向图)满足上述性质,称为弱连通。2、图的三种表示方法(1)邻接矩阵:主要适合于dense图(2)邻接表:主要适合于sparse图,具体实现方式也有多种,可以使用vector或list,也可以使用映射(节点为关键字,对应值为adjacency li

2010-08-07 15:49:00 1903

原创 Android Sample学习——NotePad

 android.view.Menu专场 Interface for managing the items in a menu. By default, every Activity supports an options menu of actions or options. You can add items to this menu and handle clicks on your additions. The easiest way of adding menu items is inflatin

2010-08-06 16:12:00 3751 1

原创 C++算法设计技巧

1、当问题涉及存在优先级关系的多重比较时,可以设计一个二元的比较函数,进而利用STL库中的一些排序函数进行排序。如:在“绅士排名”问题中设计的二元比较函数如下:定义struct结构体,记录比较对象的信息:typedef struct{      //绅士的信息 string last; string first; int height; int weight;}Suitor;bool compare(Suitor a,Suitor b){    //binary predicate,注意比较函数中的参数一定

2010-08-05 21:07:00 788

原创 散列表

这里我总结一下有关hash表的算法技巧:(《算法导论》)1、最普通的hash技术是:直接寻址表。这种技术主要应用在当关键字的全域U比较小时,直接分配固定的hash表大小。使用方式(insert、search、delete)类似于普通的数组。hash表组织方式主要有:separate-chaining和open-addressing解决冲突碰撞的主要方法有:拉链法(separate-chaining)和线性寻址、二次寻址(open-addressing)2、hash函数设计注意点:(1)好的hash函数需要满

2010-08-03 21:08:00 876

原创 linux一些不常用但很有用的命令

1、挂载光盘以root身份运行:mount /dev/cdrom /mnt,那么在/mnt目录下就会出现光盘中的文件内容,需要对光盘中的内容进行使用时,一般拷贝到其他目录中,如:/tmp。

2010-08-03 18:17:00 705

原创 C++ STL相关的一些算法

sort()基于快速排序:是不稳定排序使用方法1:sort(v.begin(),v.end())排序方式:从小到大使用方法2:sort(v.begin(),v.end(),greater())排序方式:从大到小复杂度:O(N log(N)) comparisons (both average and worst-case), where N is last - firststable_sort()基于堆排序,是稳定排序使用方法1: stable_sort(v.begin(),v.end())排序方式:从小到

2010-08-03 18:04:00 1025

原创 android中常用的一些控件

1、EditText和TextView对于EditText控件往往可以设置setOnKeyListener方法,同时新建一个OnKeyListener对象作为参数,并重载它的onKey()成员方法。作用:用来拦截EditText中的键盘输入事件。2、ImageButton和Button设置ImageButton的背景图片可以通过ImageButton.setImageResource(),需要传递的参数就是图片资源的ID,对按钮可以设置onFocusChange、onClick等按钮事件。 /*通过onFo

2010-08-02 22:30:00 1277

Learning.the.bash.Shell.3rd

这是最新的关于学习bash的一本电子书,我看过第二版的中文版,感觉不错,好不容易找到了第三版。可以学些shell编程的方法。

2011-01-28

ARM平台开发的GPRS发送短信程序

这是我在ARMs3c2410开发板上,使用BENQ公司的M22 GPRS模块,开发的自动发送短信的C语言程序,其中包含了linux下串口编程的方法。只要在PC端运行编译后的程序,通过串口连接GPRS,就能实现让GPRS模块发送短信到任何人的手机上!!

2010-01-31

软件测试习题集锦、包括了白盒测试和黑盒测试

这是自己整理的白盒测试、黑盒测试的各种题型,其中也包括了上面两种测试方法的综合题。非常实用!!

2010-01-23

软件测试完整版复习资料

这里我自己整理的软件测试方法的集锦。其中包括白盒测试、黑盒测试、静态测试等不同测试大类的各种测试方法,内容详尽,对于复习软件测试考试,绝对是好东西!!我同时也上传了相应的软件测试习题集锦,欢迎下载!!

2010-01-23

21点游戏_OOAD设计_C++语言编写

这是我用C++语言编写,以OOAD思想设计的21点游戏,也就是BlackJack游戏,其中包含了源文件,只要在VC6.0中编译就可以运行!代码有注释,不可多得的好东西!!

2009-12-10

华师大软件学院软件测试ppt

软件测试之变异测试,变异测试是软件测试领域的热点研究,值得学习,对于从事软件测试行业的人更值得看!

2009-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除