随笔分类 - 算法与数据结构
摘要:著名的模拟退火算法,它是一种基于蒙特卡洛思想设计的近似求解最优化问题的方法。 一点历史——如果你不感兴趣,可以跳过 美国物理学家 N.Metropolis 和同仁在1953年发表研究复杂系统、计算其中能量分布的文章,他们使用蒙特卡罗模拟法计算多分子系统中分子的能量分布。这相当于是本文所探讨之问题的开
阅读全文
摘要:五大常用算法:分治、动态规划、贪心、回溯和分支界定 这五种算法引出了很多问题。慢慢的更新链接! 动态规划的五个典型算法:动态规划 1.最大连续子序列之和 2.数塔问题(二叉树从上往下遍历最大和问题) 3.01背包问题 4.最长递增子序列(LIS) 5.最长公共子序列(LCS) //最长公共子序列(L
阅读全文
摘要:虽然二叉树的操作很常见,但是认真写写熟悉很重要,特别是typedef,
阅读全文
摘要:今天跟着左老师的视频,理解了四种复杂度为 O(N*log(N))的排序算法,以前也理解过过程,今天根据实际的代码,感觉基本的算法还是很简单的,只是自己写的时候可能一些边界条件,循环控制条件把握不好。
阅读全文
摘要:学习编程也有一段时间了,但是总是感觉,自己缺少一些什么东西。编程一味的学习照着别人写的习惯,没有自己的思想,是不能有质的提升的。总是感觉自己不能做什么,对待代码还是缺少基本的实现的能力,更不用说什么技巧算法了。还需要的大量的联系。 我打算好好把数据结构的算法,实现以下,总是感觉自己,看起来会了,但是
阅读全文
摘要:层次遍历二叉树,编程之美上看过解法,然后在练习了一下。用递归和vector,队列实现了,然后加上了测试函数,测试函数的二叉树创建方法待改进。
阅读全文
摘要:学习编程也有一段时间了,但是总是感觉,自己缺少一些什么东西。编程一味的学习照着别人写的习惯,没有自己的思想,是不能有质的提升的。总是感觉自己不能做什么,对待代码还是缺少基本的实现的能力,更不用说什么技巧算法了。还需要的大量的联系。 我打算好好把数据结构的算法,实现以下,总是感觉自己,看起来会了,但是
阅读全文
摘要:C++实现最长公共子序列和最长公共子串 找工作知识储备(2) 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离 115. Distinct Sub
阅读全文
摘要:一,普通的Hash方式 在介绍分布式哈希算法之前,先了解下普通的Hash是如何实现的。JDK中的java.util.HashMap类就实现了一个哈希表,它的特点有:①创建哈希表(HashMap)需要先指定大小,即默认创建一个能够存储多少个元素的哈希表,它的默认大小为16。 ②当不断地向HashMap
阅读全文
摘要:概述经典排序算法系列:http://www.cnblogs.com/kkun/archive/2011/11/23/2260312.html 参考:http://blog.csdn.net/hguisu/article/details/7776068 排序有内部排序和外部排序,内部排序是数据记录在内
阅读全文
摘要:动态规划的介绍 动态规划 所有题型的总结 动态规划 动态规划 所有题型的总结 动态规划 动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。 基本思想及其与分治法
阅读全文
摘要:Treap树算是一种简单的优化策略,这名字大家也能猜到,树和堆的合体,其实原理比较简单,在树中维护一个"优先级“,”优先级“ 采用随机数的方法,但是”优先级“必须满足根堆的性质,当然是“大根堆”或者“小根堆”都无所谓,比如下面的一棵树: 从树中我们可以看到: ①:节点中的key满足“二叉查找树”。
阅读全文
摘要:最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。而最长公共子串(要求连续)和最长公共子序列是不同的. 最长公共子序列是一个十
阅读全文
摘要:看来几篇博客,自己还没有实践 参考: 参考:http://www.cnblogs.com/yanghuahui/archive/2012/04/15/2451076.html http://www.cnblogs.com/ligang305/archive/2012/08/25/2656343.ht
阅读全文
摘要:Trie树 Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。 一.Trie树的原理 利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。 下面以英文单词构建的字典树为例,这棵Trie树中每个结点包括26个孩
阅读全文
摘要:1.引子 中国有一句古话,叫做“不撞南墙不回头",生动的说明了一个人的固执,有点贬义,但是在软件编程中,这种思路确是一种解决问题最简单的算法,它通过一种类似于蛮干的思路,一步一步地往前走,每走一步都更靠近目标结果一些,直到遇到障碍物,我们才考虑往回走。然后再继续尝试向前。通过这样的波浪式前进方法,最
阅读全文
摘要:经常提到矩阵快速幂,今天研究了一下,就是将问题转化为二进制离散化,巧妙地减少运算量。 矩阵的快速幂是用来高效地计算矩阵的高次方的。将朴素的o(n)的时间复杂度,降到log(n)。 一般一个矩阵的n次方,我们会通过连乘n-1次来得到它的n次幂。但做下简单的改进就能减少连乘的次数,方法如下: 把n个矩阵
阅读全文
摘要:啥是二叉查找树 在数据结构中,有一个奇葩的东西,说它奇葩,那是因为它重要,这就是树。而在树中,二叉树又是当中的贵族。二叉树的一个重要应用是它们在查找中的应用,于是就有了二叉查找树。 使二叉树成为一颗二叉查找树,需要满足以下两点: 对于树中的每个节点X,它的左子树中所有项的值都要小于X中的项; 对于树
阅读全文


浙公网安备 33010602011771号