一、分治算法的原理分治算法就是将一个规模为N的问题分解成K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,求出子问题的解,就可以得出原问题的解二、分治算法的伪代码实现合并算法Merge 1 MERGE(A, p, q, r) 2 n1 ← q - p + 1 3 n2 ← r ...
分类:
编程语言 时间:
2015-03-10 13:31:00
阅读次数:
223
Java代码优化缓存结果: 如果计算代价过高,最好把过去的结果缓存起来。伪代码如下: result=cache.get(n); //输入参数n作为键 if(result==null) ...
分类:
移动开发 时间:
2015-03-08 21:22:15
阅读次数:
154
选择算法伪代码:forj=1ton-1
smallest=j
fori=j+1ton
ifA[i]<A[smallest]
smallest=i
A[j]=A[smallest]
循环不变式
在for循环(循环变量为j)的每次迭代开始,包含元素A[1..j-1]对的子数组都是排好序的(由数组[1..n]的j-1个最小元素组成)
循环终止的条件是就j>n-1,..
分类:
编程语言 时间:
2015-03-08 17:24:46
阅读次数:
205
二分查找伪代码:迭代Binary-Search(A,low,high,x)while(low<=high)
mid=(low+high)/2
if(A[mid]==x)
returnmid
elseif(A[mid]>x)
high=mid-1
else
low=mid+1
returnnull
二分查找伪代码:递归Binary-Search(A,low,high,x)
if(low>high)
returnnull
m..
分类:
编程语言 时间:
2015-03-08 17:24:45
阅读次数:
232
一、冒泡排序的原理冒泡排序,就是从第一个元素开始,通过两两交换,使小的先冒出来,然后再走第二轮使次小的冒出来,直到最后一轮最大的冒出来,排序完成二、冒泡排序的伪代码实现: 1 bubblesort(A) 2 { 3 for i = 1 to length[A] 4 { 5 ...
分类:
编程语言 时间:
2015-02-28 22:53:29
阅读次数:
226
dfs可以使用堆栈实现,也可以使用递归的方式实现。利用堆栈的形式伪代码如下:本文都是以走迷宫为例子DFS:将起点标记为已走过的点,并压栈;while(栈不为空){ 从栈顶弹出一个点P; if(p是终点) break; 否则沿上下左右四个方向探索 if(和P相邻的点有路可走,并且没有走过...
分类:
其他好文 时间:
2015-02-15 19:19:07
阅读次数:
1006
将socket扔进线程池前需要定义好任务,要进行哪些逻辑处理由SocketProcessor定义,根据线程池的约定,作为任务必须扩展Runnable。用如下伪代码表示
protected class SocketProcessor implements Runnable {
public void run() {
对socket进行处理并输出响应报文;
连接数计数器减一腾出...
分类:
其他好文 时间:
2015-02-08 20:48:54
阅读次数:
149
备忘录模式在js中经常用于数据缓存. 比如一个分页控件, 从服务器获得某一页的数据后可以存入缓存。以后再翻回这一页的时候,可以直接使用缓存里的数据而无需再次请求服务器。实现比较简单,伪代码:var Page = function(){ var page = 1, cache = {...
分类:
Web程序 时间:
2015-02-05 11:05:07
阅读次数:
141
学习机器学习算法真的是一件令人头疼的事,我们有那么多的论文、书籍、网站可以参考,它们或是精炼的数学描述(mathematically),或是一步一步的文本介绍(textually)。如果你足够幸运,可能还会找到一些伪代码。如果人品爆发,甚至会被告知如何安装。但是,全靠人品毕竟不是长久之计,详尽的算法...
分类:
编程语言 时间:
2015-01-28 13:00:38
阅读次数:
219
简介 这两个项目是前期所学的知识综合,结合MVC思想完成的小项目。这里只写了类似伪代码的思路。没有提供代码,因为代码很多,没有思路来得实际。做完这两个项目心得就是,初期学这个没有一下敲出来的。只有不断的反复练习才能掌握 用户注册案例 1. 搭建环境 1.1 导开发包 dom4j开发包 BeanUti...
分类:
编程语言 时间:
2015-01-27 00:11:13
阅读次数:
265