问题:给定整数序列S[0],S[1],...S[N-1],子序列和是指S[i]+S[i+1]+...+S[j-2]+S[j-1],其中i,j,0<=i<=j<=N-1,求所有这样的子序列和的最大值,即最大子序列和。方法一:枚举法O(N^2)求出所有的子序列和,取其最大值。算法复杂度为O(N^2)。intmaxSubSeq1(inta[],int..
分类:
其他好文 时间:
2014-10-25 02:06:15
阅读次数:
171
先是看了一下讲解 ,选取 了二分法 ,由于数列都是正数的特殊情况,每一个sum【i】+s 对应一个最小的连续序列,最后只要减掉sum【i】就可以,lower_bound刚好可以用来查找最小的sum【i】+i,算法复杂度(nlogn),另外还有一种尺取法,复杂度只有n,大意是设置t,s两个节点,不断加减来更新res的最小值
下面是ac过的法一代码**************************...
分类:
其他好文 时间:
2014-10-15 21:17:18
阅读次数:
182
方法1:intCountNumOf1(intdigital){intnum=0;while(digital){if(digital%2==1){num++;}digital/=2;}returnnum;}方法2:intCountNumOf1(intdigital){intnum=0;while(digital){num+=(digital%2)?1:0;digital/=2;}returnnum;}方法3:intCountNumOf1(intdigital){intnum=0;while(d..
分类:
其他好文 时间:
2014-10-15 21:01:52
阅读次数:
140
算法复杂度分为时间复杂度和空间复杂度,一个好的算法应该具体执行时间短,所需空间少的特点。 随着计算机硬件和软件的提升,一个算法的执行时间是算不太精确的。只能依据统计方法对算法进行估算。我们抛开硬件和软件的因素,算法的好坏直接影响程序的运行时间。 我们看一下小例子: int value = ...
分类:
编程语言 时间:
2014-10-13 19:42:36
阅读次数:
227
插入排序的算法复杂度为O(n2),但假设序列为正序可提高到O(n),并且直接插入排序算法比較简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描写叙述希尔排序:将无序数组切割为若干个子序列,子序列不是逐段切割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小.....
分类:
其他好文 时间:
2014-10-05 18:35:58
阅读次数:
197
一个扑克牌洗牌的算法,算法复杂度为O(N)。...
分类:
其他好文 时间:
2014-09-24 18:53:57
阅读次数:
201
LIS(Longest Increasing Subsequence)最长上升(不下降)子序列,有两种算法复杂度为O(n*logn)和O(n^2)。在上述算法中,若使用朴素的顺序查找在 D1..Dlen查找,由于共有O(n)个元素需要计算,每次计算时的复杂度是O(n),则整个算法的时间复杂度为O(n...
分类:
其他好文 时间:
2014-09-24 08:14:46
阅读次数:
218
计数排序是一种算法复杂度 O(n) 的排序方法,适合于小范围集合的排序。比如100万学生参加高考,我们想对这100万学生的数学成绩(假设分数为0到100)做个排序。我们如何设计一个 最高效的排序算法。本文不光给出计数排序算法的传统写法,还将一步步深入讨论算法的优化,直到时间复杂度和空间复杂度最优。先...
分类:
其他好文 时间:
2014-09-22 10:47:42
阅读次数:
294
本文章代码中的图用邻接矩阵来表示,所以算法复杂度为O(V^2)。如果用邻接表来表示,那么算法的复杂度为O(V+E)。DFS可用来判断图中是否有环,展现无向图中的连通分支。通过DFS,形成一个由多棵深度优先树所组成的深度优先森林。将原先图中的边添加到该森林之后,可以将所有边定义为以下四类:1. 树边:...
分类:
其他好文 时间:
2014-09-19 19:00:25
阅读次数:
130