本文在写作过程中参考了大量资料,不能一一列举,还请见谅。
回溯算法的定义:回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
解题的一般步骤是:
1.定义一个解空间,它包含问题的解;
2.利用适于搜索的方法组织解空间;
3.利用深度优先法搜索解空间;
4.利用限界函数避免移动到不可能产生解的子空间;
问...
分类:
编程语言 时间:
2016-05-27 12:09:28
阅读次数:
310
Spring 源码解析之ViewResolver源码解析(四)1 ViewResolver类功能解析1.1 ViewResolver
Interface to be implemented by objects that can resolve views by name.
View state doesn’t change during the running of the applic...
分类:
编程语言 时间:
2016-05-27 12:09:28
阅读次数:
621
一:图的分类
1:无向图
即两个顶点之间没有明确的指向关系,只有一条边相连,例如,A顶点和B顶点之间可以表示为 也可以表示为,如下所示
2:有向图
顶点之间是有方向性的,例如A和B顶点之间,A指向了B,B也指向了A,两者是不同的,如果给边赋予权重,那么这种异同便更加显著了...
分类:
编程语言 时间:
2016-05-27 12:09:45
阅读次数:
323
首先要加入三个JAR包:
其次在Controller中:
package com.cgf.springmvc.handlers;
import java.util.Collection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype...
分类:
编程语言 时间:
2016-05-27 12:09:56
阅读次数:
169
ReactiveX/RxJava文档中文版项目地址:https://github.com/mcxiaoke/RxDocs,欢迎Star和帮忙改进。有任何意见或建议,到这里提出 Create New Issue阅读地址
ReactiveX文档中文翻译
PDF/ePub/Mobi格式下载
说明
大部分是翻译自 ReactiveX.io 和 RxJava Wiki,修正了原文的一些错误,补充了详细的说明和...
分类:
编程语言 时间:
2016-05-27 12:07:56
阅读次数:
251
Subject = Observable + Observer看看官方的描述:
Subject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当了Observer和Observable的角色。因为它是一个Observer,它可以订阅一个或多个Observable;又因为它是一个Observable,它可以转发它收到(Observe)的数据,也可以发射新的数据...
分类:
编程语言 时间:
2016-05-27 12:06:24
阅读次数:
707
你一定知道多任务处理,因为它实际上被所有的现代操作系统所支持。然而,多任务处理有两种截然不同的类型:基于进程的和基于线程的。认识两者的不同是十分重要的。对很多读者,基于进程的多任务处理是更熟悉的形式。进程(process)本质上是一个执行的程序。因此,基于进程(process-based)的多任务处理的特点是允许你的计算机同时运行两个或更多的程序。举例来说,基于进程的多任务处理使你在运用文本编辑器...
分类:
编程语言 时间:
2016-05-27 12:06:20
阅读次数:
222
在我们开始讨论事件处理之前,必须明确一点:Java原始的1.0版和现在开始于1.1版的版本之间在小应用程序处理事件的方式上有了根本的变化。1.0版的事件处理方法仍然被支持,但是不推荐在新的程序中应用。同时,许多支持老的1.0事件处理模型的方法已经不被推荐使用。新的方法应该被所有新的程序中应用,其中也包括那些为Java2编写的程序,因而也被这本书中所提供的程序所使用。
...
分类:
编程语言 时间:
2016-05-27 12:08:21
阅读次数:
316
Java中的List继承自Collection接口。List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。跟Set集合不同的是,List允许有重复元素。对于满足e1.equals(e2)条件的e1与e2对象元素,可以同时存在于List集合中。当然,也有List的实现...
分类:
编程语言 时间:
2016-05-27 12:07:00
阅读次数:
246
一、线程生命周期共五个状态:
新建状态:
Thread t = new Thread()
就绪状态
调用start()方法,
运行状态
使用yield()方法可以使线程主动放弃CPU。线程也可能由于执行结束或执行stop()方法进入死亡状态。每个线程对象都有一个run()方法,当线程对象开始执行时,系统就调用该对象的run()方法。
阻塞状态
线程从阻塞状态恢复到就绪状态有三...
分类:
编程语言 时间:
2016-05-27 12:06:35
阅读次数:
246
为了防止思维僵化,每天刷个算法题。这里写一个二叉排序树。...
分类:
编程语言 时间:
2016-05-27 12:05:10
阅读次数:
185
概述在许多实际应用中,需要对许多数据点进行分组,划分成一个个簇(cluster),并计算出每一个簇的中心。这就是著名的k-means算法。k-means算法的输入是N个d维数据点:x_1, …, x_N,以及需要划分的簇的数目k。算法运行的结果是每个簇的中心点m_1, …, m_k,也可以输出每个簇中有哪些数据点。算法先通过随机,或启发式搜索,确定初始的中心点位置。再通过如下两个步骤的交替,进行数据...
分类:
编程语言 时间:
2016-05-27 12:02:52
阅读次数:
242
我的leetcode之旅,该篇章主要完成使用Java实现算法。这是第三篇Longest Substring Without Repeating Characters...
分类:
编程语言 时间:
2016-05-27 12:05:10
阅读次数:
166
我们知道,哈希表不可避免会出现的问题是哈希值冲突,也就是两个不同的Key可能具有相同的哈希值。线性探测是指,如果出现第二个Key的哈希值和第一个Key的哈希值冲突,则会检查第一个Key对应位置的后一个位置是否可用,如果可用则把第二个Key对应的Value放在这里,否则就继续向后寻找。...
分类:
编程语言 时间:
2016-05-27 12:03:20
阅读次数:
364
为了防止思维僵化,每天刷个算法题。这里写一个回溯法解八皇后。...
分类:
编程语言 时间:
2016-05-27 12:00:47
阅读次数:
163
为了防止思维僵化,每天刷个算法题。这里求二叉树高度(递归与非递归两种解法)。...
分类:
编程语言 时间:
2016-05-27 12:00:23
阅读次数:
142