动态规划方法通常用来求解最优化问题。动态规划算法设计步骤:
1.刻画一个最优解的结构特征。
2.递归定义最优解的值。
3.计算最优解的值,通常采用自底向上的方法。
4.利用计算出的信息构造一个最优解。
动态规划的实现方法:
带备忘的自顶向下法:此方法仍按自然的递归形式编写过程,但过程会保存每个子问题的解(通常保存在一个数组或散列表中)。当需要一个子问题的解时,过...
分类:
编程语言 时间:
2014-12-13 09:37:19
阅读次数:
270
原文: 一步一步写算法(之hash表) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 hash表,有时候也被称为散列表。个人认为,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,...
分类:
编程语言 时间:
2014-12-11 10:04:23
阅读次数:
161
在《算法》中的散列表一节,在用拉链法实现散列表的API时要求实现以下一个方法:public Iterable keys()我们知道Iterable是一个接口,那么一个方法怎么会返回一个接口呢?在《Effective Java》中第52条为“通过接口引用对象”as parameter types. M...
分类:
编程语言 时间:
2014-12-10 22:41:08
阅读次数:
270
7.6 在二维平面上,有一些点,请找出经过点数最多的那条线。解法:类似于leetcode:Max Points on a Line我们只需在任意两点之间“画”一条无限长的直线(也即不是线段),并利用散列表追踪哪条直线出现的次数最多。这种做法的时间复杂度O(n^2),因为一共有n^2条线段。通过将每一...
分类:
其他好文 时间:
2014-12-07 11:19:53
阅读次数:
143
散列表,又名哈希表、Hash表。这是一个神奇的数据结构,它的复杂度是常数级别,由于我非常喜欢这个数据结构,在此简单介绍一下。 (没有学过Hash表的同学,我推荐一个教程:http://www.cnblogs.com/jiewei915/archive/2010/08/09/1796042.html)...
分类:
编程语言 时间:
2014-12-04 09:55:48
阅读次数:
258
散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。类似于数学中的映射关系。 现假设关键字的全域...
分类:
其他好文 时间:
2014-11-30 13:44:50
阅读次数:
150
摘要:
本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和冲突处理方法,可以使得在散列表中查找一个元素的期望时间为O(1)。散列表是普通数组概念的推广,在散列表中,不是直接把关键字用作数组下标,而是根据关键字通过散列函数计算出来的。书中介绍散列表非...
分类:
编程语言 时间:
2014-11-30 09:18:33
阅读次数:
333
session概述session机制session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,...
分类:
Web程序 时间:
2014-11-23 01:54:06
阅读次数:
288
接踵而至的笔试啊。。。各种忙碌啊。。。1,假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数() A.h(k)= K/N B.h(k)=1 C.h(k) = k mod ND.h(k) = (K + random(N) ) mod N,random(N)返回一个0到N的整数2,...
分类:
其他好文 时间:
2014-11-18 13:22:21
阅读次数:
216
所谓数据结构,即是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。常见的数据结构包括:数组,栈,队列,链表,树,图,堆,散列表。数组 (Array)在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在...
分类:
编程语言 时间:
2014-11-15 12:44:32
阅读次数:
151