- 博客(45)
- 资源 (3)
- 收藏
- 关注
原创 排序算法(二)—归并排序(Merge sort)
Merge sort首先将需要排序的序列拆分成单独的可排序对象,然后将这些可排序对象两两进行归并,直到把它们再合并为一个排序好的序列为止。Merge sort不是in place排序,但是将Merge sort应用于链表(list)和数组的时候,两者的空间复杂度是不同的。应用于链表的时候空间复杂度更低。因此Merge sort更适用于链表。本文采用非递归的方式来实现Merge sort在队
2015-06-12 10:42:35
743
原创 “Network”游戏棋人机对弈的设计与实现(二)—判断步骤是否合法
人机对弈之前,计算机首先需要具备能够判断双方所走的步骤是否合法的功能,这里使用棋盘类GameBoard来实现相关的功能。首先将对弈的棋盘看成是一个8*8的二维数组,每一个单元格对应一个数组下标,并且单元格中存储该单元格中棋子的颜色。棋盘模型如图所示:棋盘类的总体代码:package gameboard;public class GameBoard { public fi
2015-06-05 14:06:52
860
原创 “Network”游戏棋人机对弈的设计与实现(一)—游戏规则
“Network”是由Sid Sackson在1992年设计的一种棋类游戏。棋盘是由8 *8=64个格子组成,如图所示:具体规则如下:(1)总共有两方进行对弈,分别是白方与黑方,每方都有10个棋子,其中最上和最下两排方格是黑方的老家,只有黑方可以把棋子放在这两行。同理最左和最右是白方的老家,只有白棋子可以放在这里。棋盘的四个顶点(图中标灰部分)不允许任何一方放棋子。(2)棋盘获
2015-06-05 10:18:29
940
原创 排序算法(一)—插入排序(Insertion sort)
插入排序是排序算法中比较简单的算法,此算法的最坏时间复杂度是O(n^2),算是比较慢的算法了,其优点是空间上是in place的,只需要占用常量的额外存储空间。算法的python代码如下:def insertionSort(A): for j in range(len(A)): key = A[j] i = j-1 while i >
2015-05-20 11:33:19
629
原创 算法的渐近分析
有了算法的具体语句后,我们可以根据语句情况、编程语言、编译器等外部条件的情况算出一个算法的准确时间复杂度,通常这种精确的时间复杂度由于考虑的因素较多,因此表达式比较复杂(如:T(n) = 168n^3+65n^2+n+10000),当外部条件改变时,如实现语言变化、执行算法的计算机不同等,式子中的常量系数也会发生变化。因此,即使是同一个算法,在不同条件时精确的时间复杂度也会不同,这就给衡量不同算法
2015-05-15 16:26:01
6425
原创 Android在另一个Activity里怎样finish()掉其他的acticity
static TaskHomeActivity instance; //在被finish掉的acticity中定义instance = this;//在被finish()掉的activity中的OnCreate()方法中写TaskActivity.instance.finish();//在其他的activity里面调用
2015-03-24 15:36:33
1221
原创 双向链表的两种实现与封装性
第一种实现形式是比较普通常见的,链表有一个sentinal节点,由DLinkedListNode,DList类组成,具体实现如下:/* DList.java */package list;/** * A DList is a mutable doubly-linked list ADT. Its implementation is * circularly-linked an
2015-01-30 15:26:27
770
原创 PriorityQueue的BinaryHeap实现
PriorityQueue(优先队列)有很多应用场景,例如去听一场音乐会,假如票已经都卖完了,但是还有许多没票的人在排队等是否有人退票,如果有人退票,那么系统就需要把这张票分类给优先级最高的那个排队者(这里的优先级可以是排队的时间,或者交的钱多少等,这里的优先级条件对应priorityqueue中的key)。PriorityQueue的实现方法有多种,包括SortedList,UnSorted
2015-01-22 14:21:31
1441
转载 Java判断一个数是不是素数
[java] view plaincopyimport java.util.Scanner; //质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数 public class PrimeNumber { public static void main(String[] args) {
2015-01-09 16:10:47
780
原创 java中的super关键字
网上很多资料说super指向父类对象,感觉这种说法有误,看看下边的例子:Parent类:public class Parent { public void A(){ System.out.println("This is Parent A"); B(); } public void B() { System.out.println("This is Parent B
2014-12-31 15:53:29
434
原创 两种双向链表的首项插入与删除效率比较
这里说的两种双向链表是指带“sentinel”与不带“sentinel”的,其中带"sentinel"的多了一个"sentinel"节点,以空间换取了时间。两种链表如下图:1.不带sentinel的:下面是构造方法以及在首项插入和删除方法,从代码中可以看出没有sentinel的DList在插入时需要处理链表为空的情况,删除的时候需要处理链表为空以及链表只有一个元素的情况,比较麻烦。
2014-12-26 15:21:43
1230
转载 android应用中去掉标题栏的方法
在android中去掉标题栏有三种方法,它们也有各自的特点。1.在代码里实现[java] view plaincopythis.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 记住:这句代码要写在setContentView()前面。2.在清单文件(mani
2014-12-25 14:57:33
401
原创 RunLengthEncoding与普通图像间的相互转换
有些大图像直接存储会很浪费磁盘空间,因此可以将普通图像转换成RunLengthEncoding编码,以压缩存储空间。将图像看成是一个二维数组,数组的每个元素代表图像的一个像素,其中存储了R(Red)、G(Green)、B(Blue)的具体值。RunLengthEncoding就是首先将图像的每行像素连接到一起,形成一个长的一维数组。然后将相邻的具有相同RGB值的像素合并到一块存储。例如下图是一个图
2014-12-23 16:52:16
2276
转载 Iterator的作用以及遍历LinkedList双向链表的效率
Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:for(int i=0; i而访问一个链表(LinkedList)又必须使用while循环: while((e=e.next())!=null) { ... e.data(
2014-12-23 16:44:02
407
原创 android横竖屏切换时应用的生命周期
默认情况下切换横竖屏应用的生命周期先结束再开启,这样会导致程序终端,避免出现这种情况的方法是在AndroidManifest.xml中加入android:configChanges="orientation|keyboardHidden|screenSize".
2014-12-15 10:02:02
388
原创 android冒烟测试与单元测试
冒烟测试:adb shell monkey -p -v 单元测试:在AndroidManifest.xml文件中配置一下信息:在manifest节点下: android:name="android.test.InstrumentationTestRunner" android:targetPackage="需要测试的包名" />
2014-12-01 10:07:11
1494
原创 Sobel图像边界检测算法实现
实现算法有两个核心算法,一是为了处理边界的reflected方法,为了将原图像的边界点reflecte出来。另一个是实现Sobel算法的方法:具体见下边源码:首先是reflect方法: public PixImage reflect(){ int width = this.getWidth(); int height = this.getHeight(); int new
2014-11-28 09:48:21
731
原创 图像模糊算法实现
将一幅图像看成是由像素组成的矩形,每个像素由R(Red),G(Green), B(Blue)三个值组成,图像模糊的原理就是算出每个像素相对于它相邻的多个元素的平均R,G,B值(每个R,G,B值分别处理), 其中边界点有六个相邻元素,内部点有9个相邻元素,顶点有4个相邻元素。可以对图像进行多次模糊。下面是核心算法实现: public PixImage boxBlur(int numIterati
2014-11-26 16:53:19
734
原创 Android的四种点击事件
android常用的四种响应按钮点击事件的方法有1.内部类2.匿名内部类3.布局文件夹定义Onclick属性,并在activity中声明方法(不提倡,代码与layout文件耦合度高)4.在主类中实现OncickListener接口,并在主类中实现未实现的方法(开发中用到的较多)1.内部类[java] vie
2014-11-26 10:33:42
457
转载 ViewPager 详解(一)---基本入门
前言:这两天研究研究ViewPager滚动功能,现在很多的app都有用到这个功能,我们的大虾米也有这个模块。要研究就彻底的研究研究,我从不满足于一个功能只是简单的应用,要学就学的彻底,所以我打算将ViewPager 分几篇写,研究的哪个程度就写到哪个程度吧。今天是第一篇,基本入门篇 。相关文章:1、《ViewPager 详解(一)---基本入门》2、《V
2014-11-13 14:21:44
396
转载 Android Fragment 真正的完全解析(下)
转载请标明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/37992017上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上)。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity
2014-11-07 10:28:53
395
转载 Android Fragment 真正的完全解析(上)
转载请标明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/37970961自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,
2014-11-07 10:27:26
328
转载 Android之Adapter用法总结
1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:Android中所有的Adapter一览: 由图可以看到在Android中与
2014-11-06 17:44:26
329
转载 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决
不能实例化activity有如下三种情况:1.没有在Manifest.xml 清单中注册该activity,或者在创建完activity后,修改了包名或者activity的类名,而配置清单中没有修改,造成不能实例化。2.自己新建了一个包,而注册时候依然用的默认包,例如,默认包是com.ghg.Dao包,你新建了一个com.ghg.DaoImpl包,并在此包中写了个FirstActi
2014-11-06 14:10:54
525
原创 java MD5加密
public static String getEncryptPwd(String pwd) { MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(p
2014-10-31 14:05:40
378
原创 Find the 5 repeated items in an array
Let A be an array of size n >= 6 containing integers form 1 to n - 5,inclusive,
2014-10-21 14:40:49
431
原创 随机选择数组元素并删除,直到删完为止(java实现)
import java.util.Random;public class RandomSelect { public static void selAndDel(Object[] A){ int delNum = 0; Random rand = new Random(); rand.setSeed(System.currentTimeMillis()); while
2014-10-21 10:49:20
1911
原创 递归实现逆转数组(Java实现)
public class ReverseArray { public static void swap(int[] A, int a, int b){ int temp; temp = A[a]; A[a] = A[b]; A[b] = temp; } public static void reverseArray(int A[], int start, int end)
2014-10-20 11:54:23
2667
原创 使用递归求数组最大值(java实现)
public class FindMax {static int max;public static int compare(int a, int b){if(a > b){return a;}return b;}public static int findMax(int[] A, int endIndex, int addtion){if(en
2014-10-20 10:06:04
1430
转载 hadoop 安装错误记录
Error: dl failure on line 864Error: failed /home/app/jdk1.7.0_21/jre/lib/i386/client/libjvm.so, because /home/app/jdk1.7.0_21/jre/lib/i386/client/libjvm.so: cannot restore segment prot after reloc:
2014-09-03 14:08:16
468
原创 Linear Algebra--Length and Dot Products of Vectors
1.The dot product(inner product) of v = (v1,v2) and w = (w1,w2) is the num
2014-08-04 10:35:50
707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人