1.优化算法时间复杂度算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。2.减少冗余数据如用上三...
分类:
编程语言 时间:
2014-11-16 22:58:35
阅读次数:
430
一、实验目的:熟悉掌握分治算法设计技术二、实验要求:1、按教材所授内容要求,完成“棋盘覆盖问题”算法。得到一个完整正确的程序。2、棋盘大小:32*32(或16*16)3、输出最终结果。三、实验设备及环境:PC机一台、java虚拟机Eclipse或jdk环境四、问题描述:通过一门语言写一个棋盘覆盖算法...
分类:
编程语言 时间:
2014-11-15 21:44:50
阅读次数:
666
一、实验目的:熟悉掌握分治算法设计技术。二、实验要求:1、按教材所授内容要求,完成“线性时间选择问题”算法。得到一个完整正确的程序。2、问题规模:不少于20003、输出最终结果。三、实验设备:PC机一台四、问题描述:运用分治法的原理,对随机生成的数进行查找,找出其中第K大小的数,找出之后输出所找到的...
分类:
编程语言 时间:
2014-11-15 21:37:28
阅读次数:
629
现在编程也算是走上门了,但是没有把算法掌握下来只能说自己还是门外汉,所以以后我们就开始努力的学习算法,现在把自己每天的学习分享在这里希望大家能喜欢,并且我也要在这里整理我一天的学习和思路,。二分查找。。大家经常需要在一个数组中寻找某个值。如果是一个已经拍好序的话那么可以很快的找到。我们考虑下暴力查找...
分类:
编程语言 时间:
2014-11-14 22:30:25
阅读次数:
272
排序算法——快速排序今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基...
分类:
编程语言 时间:
2014-11-12 14:57:58
阅读次数:
253
六、快速排序 快速排序是通过一种把集合中的元素按照第一个元素(这个是动态过程变化)作为标杆来分为两部分,前面一部分比他小(或等),后面一部分比它大。然后就是通过适当的程序来递归这个过程,当最后没有交换说明需要退出递归。 上图。 快速排序使用分治法(Divide and conquer)策略来把...
分类:
编程语言 时间:
2014-11-09 17:53:27
阅读次数:
320
The K-th Distance
Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 202 Accepted Submission(s): 50
Problem Description
Given a tree, w...
分类:
其他好文 时间:
2014-11-09 13:59:19
阅读次数:
376
本题是利用cdq分治 实现斜率优化的一个题目
斜率优化之前做的几个题都是斜率单调,并且插入点时由于点在某一维单调,所以仅仅操作队首和队尾就能完成优化了
但是本题显然不是
主要参考了两个东西
从《Cash》谈一类分治算法的应用
(Day1)cdq分治相关
这两个直接在百度上搜 ,第一个出来的就是
本题的题意是
一个公司获得了一个厂房n(10^5)天的使用权...
分类:
系统相关 时间:
2014-11-08 15:22:58
阅读次数:
261
今天的算法课高能的不行,对助教各种膜拜~~这里就厚颜无耻地讲讲吧,当然还有抄袭,hiahia~~1.Divide and Conquer首先,提到这个高能的问题,不得不说说那个Master Theory,简直是外挂、BUG...$$T(n) = aT(n/b) + f(n); \text{assum...
分类:
编程语言 时间:
2014-11-08 00:47:16
阅读次数:
570