快速排序基本思想:挖坑填数+递归分治 快速排序使用分治法的策略,把一个串行分成2个子串行,快速排序又是一种分而治之的思想在排序算法是上的典型应用,本质上看,快速排序应该算冒泡排序基础上的递归分治法,快速排序名字简单粗暴,顾名思义就是快而且效率高,它是处理大数据最快的算法之一了。 算法描述:1、从数列 ...
分类:
编程语言 时间:
2018-11-08 22:13:55
阅读次数:
222
1.你对动态规划算法的理解(2分) 答:动态规划算法其实和分治法很像,本质都是把一个大的问题分解成若干个小问题,通过求解子问题得到原问题的解,而子问题一般是存在联系的,用分治法会消耗大量时间,子问题被重复计算多次,如果我们把已解决子问题的答案保存,需要时拿出来用,这样可避免大量计算,我们用一个表来记 ...
分类:
编程语言 时间:
2018-11-05 00:01:34
阅读次数:
134
分治法 实现归并排序 1 问题描述 二路归并排序,不仔细详解了。之所以记录是因为被坑了, 详细看代码 2 python 实现 ...
分类:
编程语言 时间:
2018-11-02 23:42:02
阅读次数:
148
分治法求解最大字段和问题 1 问题描述 给定由n个整数(可能由负数)组成的序列(a1, a2,...,an),最大字段和问题求 该序列中连续子段和的最大值,并找出这个连续子段。 2 使用python编程解决,具体代码如下 ...
分类:
其他好文 时间:
2018-11-02 23:37:02
阅读次数:
156
有这么一个问题, 给定一个数(假定32位), 如何得到这个数转为二进制后1的个数? 解: X=(x & 0x55555555)+((x>>1)&0x55555555) X=(x & 0x33333333)+((x>>2)&0x33333333) X=(x & 0x0F0F0F0F)+((x>>4)& ...
分类:
其他好文 时间:
2018-11-02 00:10:56
阅读次数:
175
topN问题:给出一个数组,找出前N个最大的元素。 topN问题可以用分治法解决,这个问题与快速排序类似,快速排序是用一个数对数组进行划分,topN问题则不需完成排序,只需划分出前n个最大的数字即可。所以可以采用快排中partition函数的操作,将每次操作的返回值与N作对比,若比N小则对N及其后续 ...
分类:
其他好文 时间:
2018-11-01 22:23:23
阅读次数:
166
1.对动态规划算法的理解 基本思想: 动态规划算法是将待求解的问题分解成若干个子问题,先求子问题,然后从这些子问题的解得到原问题的解。但与分治法不同,适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。为了避免有些子问题被重复计算了很多次,可以用一个表来记录所有已解决的子问题的答案, ...
分类:
编程语言 时间:
2018-11-01 22:19:55
阅读次数:
147
题目链接:http://codeforces.com/contest/448/problem/C 题目大意:n个1* a [ i ] 的木板,把他们立起来,变成每个木板宽为1长为 a [ i ] 的栅栏,现在要给栅栏刷漆,刷子宽1,刷子可以刷任意长,每次只能横着刷或者竖着刷,问最少需要刷几次?解题思 ...
分类:
其他好文 时间:
2018-11-01 21:08:30
阅读次数:
116
插入排序思想: 1.先从一串元素中随机取出一个元素,置于数组A中;其他元素置于数组B中; 2.遍历数组B中的每一个元素,将每个元素以正确的顺序置入数组B中。 插入排序算法时间复杂度:Θ(n2) 分治法思想: 1.分解原问题为若干子问题,这些子问题是原问题的规模较小的实例。 2.解决这些子问题,递归求 ...
分类:
编程语言 时间:
2018-10-30 14:42:39
阅读次数:
170
1、对动态规划算法的理解 (1)基本思想: 动态规划算法的基本思想与分治法类似:将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解中得到原问题的解。但是,与分治法不同的是,为了避免重复多次计算子问题,动态规划算法用一个表记录所有已解决的子问题的答案,不管该子问题以后是否被利用,只要 ...
分类:
编程语言 时间:
2018-10-25 22:41:30
阅读次数:
248