算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。
分类:
编程语言 时间:
2014-10-25 14:28:03
阅读次数:
243
这三种算法总的来说,刚开始看的时候不知道怎么下手,但是看多了也会有那么一点儿感觉。分治法是这三种算法里面都有的思想,动态规划和贪心都是将问题分解成子问题求解,但动态规划里面的子问题都带有联系,而贪心算法里面的子问题都相对独立,唯一不同的是,贪心算法要首先想出一个解决方案来构造求解最优解的过程。...
分类:
其他好文 时间:
2014-10-23 20:49:49
阅读次数:
241
题目:有这样一种编排,第一组有1个人,第二组有2个人,..,第k组有k个人,现在有n个人,问能构成前几组。
分析:数论,分治。显然这个序列是一个前k项和,那么输出(k+1)*k /2不超过n的最大k值即可;二分或开方。
说明:数据较大,用long long。
#include
#include
#include
using namespace std;
typedef long l...
分类:
其他好文 时间:
2014-10-22 20:23:35
阅读次数:
195
现在要把这几种常见的算法给理清弄明白了,要不然只能做个低级程序员了。
动态规划DP是求解决策过程的最优化的数学方式。动态规划一般分为线性动规,区域动规,树形动规,背包动规。
动态规划是一种方法,但不是一种算法,一般用于多决策中的最优化问题,具有递推的思想。动态规划与分治法类似,基本思想都是把待解问题分解成若干个子问题,先求解子问题,然后由这些子问题的解得到原问题的解。但分治法中分解得到...
分类:
其他好文 时间:
2014-10-21 21:35:23
阅读次数:
214
最大字数组问题是递归与分治算法中的经典问题:问题:求一个数组中相加可以获得最大值的子数组,子数组是指原数组中任意连续的一段代码:#include<iostream>
usingnamespacestd;
intmax_mid(int*a,intmid,intlow,inthigh)
{
intml=a[mid];
intmr=0;
intsum=ml;
for(inti=..
分类:
编程语言 时间:
2014-10-21 19:54:46
阅读次数:
204
快速排序是排序中常用的,效率据说还不错,它使用分治算法实现将一个大的需要排序的序列,分成两个较小的序列!怎么分呢,需要从序列中找出一个元素作为参考元素,通常的做法是拿第一个元素作为参考元素。当一个序列只有一个元素或者零个元素,就说明这个序列已经排序好 。步骤:1,用一个元素作为参考元2,分割序列,形...
分类:
编程语言 时间:
2014-10-21 17:29:34
阅读次数:
198
减一技术,与二分搜索一样,是一种通用算法设计技术。它是分治法的一种特殊形式,通过建立问题实例P(n) 与问题实例P(n-1)的递推求解关系式而实现;最经典的例子莫过于插入排序了。这里,给出减一技术在生成排列组合方面的应用。(一) 排列问题: 生成自然数 1,2,,,,,n 的所有排列。算法描述:使用...
分类:
编程语言 时间:
2014-10-20 20:57:13
阅读次数:
204
一、基本概念
在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)。
二、基本思想及策略
分治法设计思想:将一个难以直接解决的大问题,...
分类:
编程语言 时间:
2014-10-20 15:11:29
阅读次数:
218
一、基本概念
动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。
二、基本思想与策略
基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有...
分类:
编程语言 时间:
2014-10-20 15:08:21
阅读次数:
211
D Tree
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others)
Total Submission(s): 1687 Accepted Submission(s): 263
Problem Description
There is a skyscrapin...
分类:
其他好文 时间:
2014-10-19 15:43:05
阅读次数:
207