![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
xinranlee
这个作者很懒,什么都没留下…
展开
-
排序
1. 排序方法的分类稳定的排序用'Y'表示,不稳定的排序用'N'表示插入排序:直接插入排序(Y)、希尔排序交换排序:冒泡排序(Y)、快速排序(N)选择排序:直接选择排序(N)、堆排序(N)归并排序:二路归并排序(Y)2. 排序方法的特点快速排序:适合对无序记录排序,平均性能最好,时间复杂度为O(nlogn)直接插入排序:从待排序列中依次取出元素与已排子序列比较,找出在已排子序列中的位置。元素有序时比较次数最少。冒泡排序:每一趟把最大元素置后选择排序:从待排序列中选出最小的元素,放在已排子序列的末端。能在排序原创 2011-03-14 09:42:00 · 440 阅读 · 0 评论 -
查找算法
<br />二叉树支持动态的插入和查找,保证操作在O(height)时间,这就是完成了哈希表不便完成的工作,动态性。但是二叉树有可能出现worst-case,如果输入序列已经排序,则时间复杂度为O(N) <br /><br />平衡二叉树/红黑树就是为了将查找的时间复杂度保证在O(logN)范围内。 <br />所以如果输入集合确定,所需要的就是查询,则可以考虑使用哈希表,如果输入集合不确定,则考虑使用平衡二叉树/红黑树,保证达到最大效率原创 2011-03-14 17:07:00 · 390 阅读 · 0 评论 -
动态规划经典题目
第一题: 给定一个整数序列A={a1,a2,...,an},求它的最长递增子序列。比如,A={1,2,6,4,5}的最长递增子序列为{1,2,4,5},长度为4. 背景:最长递归子序列问题应该算是DP的一个比较经典的应用了。 解法一: 直接D转载 2011-09-02 15:31:55 · 1132 阅读 · 0 评论 -
动态规划理解
理解动态规划有三个要点:问题必须可多阶段决策的,问题必须是有最优子结构的,问题必须是无后效性的。 套用维特比算法会比较好理解 。在具有N个状态,M个观测序列组成的路径矩阵中,寻找最优路径,全局最优路径必定是前M-1个观测序列的最优路径,再加上从M-1到M的最优路径组原创 2011-03-13 22:03:00 · 753 阅读 · 0 评论 -
BloomFilter——大规模数据处理利器
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你转载 2011-09-13 10:25:02 · 452 阅读 · 0 评论