
算法
csl13
学生
展开
-
寻找第K大数的方法
摘自:http://www.cnblogs.com/zhjp11/archive/2010/02/26/1674227.html 今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解法1原创 2010-12-05 18:38:00 · 2247 阅读 · 0 评论 -
数组循环移位
题目:设计一个算法,把一个含有N个元素的数组循环右移K位,要求复杂度为O(N),且只允许使用两个变量思考问题:1)考虑原始解法:直接循环移动数组K次,则算法复杂度为0(N*K), 使用额外两个变量完成,显然复杂度依赖于K的值,如果K>=N,则算法复杂度大于或等于O(N^2)2)考虑改进:原始算法复杂的原因在于移动次数过多,降低算法复杂度的最根本的目标就是如何减少移动次数而达到需原创 2012-06-05 16:46:56 · 553 阅读 · 0 评论 -
求数组中最长递增子序列
问题:一维数组中最长递增子序列的长度简单描述:该题目的注意问题是,当确定数组中前K个的最长递增序列的时候,第K+1个数的加入会打破钱K个数的稳定性,第K+1个数可能增长前K的目前最大值,也可能增长前K的第二大值,第三大值,等等,故需要记录长度为i的最大元素,当判断第K+1时,则从当前最长向最小查找,找到第一个满足需求的长度,令其加1原创 2012-06-05 17:02:30 · 634 阅读 · 0 评论 -
程序=算法+数据结构
程序=算法+数据结构算法即对事物的数学描述;数据结构即事物在计算机中的表示结构原创 2012-06-11 11:48:55 · 489 阅读 · 0 评论 -
kmp算法设计思路
子串匹配算法主要设计思路:充分利用已匹配过信息,尽量减少匹配次数。kmp子串匹配算法即利用以上设计思路,通过对子串本身的重复模式进行检查,求出每次已匹配串中的最大前缀匹配数。举例如下:假设查找子串b是否出现串a中,子串b由{b1,b2, b3, ... bm}组成, 串a由{a1,a2,a3, ... an}组成:采用归纳假设方法:假设当前b1 ~b(i-1)与a(k) ~ a(k原创 2012-05-25 18:32:42 · 1184 阅读 · 0 评论