声明:本文转载自:MoreWindows 的白话经典算法系列之五 归并排序的实现。原文的链接:http://blog.csdn.net/morewindows/article/details/6678165归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Co...
分类:
编程语言 时间:
2015-03-12 14:51:21
阅读次数:
175
上一篇我们用分治法已经将问题的复杂度降低了许多,但是,我们依旧不满足,于是,我们尝试用动态规划来做这道题。解题思路:
对于这样一个连续和的问题(个人习惯叫做最大连续和),如果我们要用动态规划来解,首先得考虑状态和状态转移方程。如果我们把题述数组看成序列,那么是不是可以用序列DP来考虑呢?
我们不妨考虑一个这样的序列:1,-3,5,-2,4
a[i]表示这个序列的第 i 个元素,dp[i]表示最...
分类:
编程语言 时间:
2015-03-11 23:27:57
阅读次数:
2083
题目描述:
给定一个n个元素的数组a,求a[i]+a[i+1]+…+a[j]的最大值(0 <= i <= j < n)解题思路:
我们来试试用分治法来解决这个问题。首先我们想要找到一个子数组a[i…j]为最大子数组,我们假设数组的中点为mid,可以将数组a[low…high]分成两个子数组:a[low…mid]和a[mid+1…high],那么最大子数组必然为下述三种可能之一:
1) low...
分类:
编程语言 时间:
2015-03-10 21:31:56
阅读次数:
155
gamefrye归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的..
分类:
编程语言 时间:
2015-03-10 01:33:38
阅读次数:
178
题意:
给平面上的n个点,求两点间的最短距离。
分析:
分治法,保存点用vector会tle...
代码:
//poj 3714
//sep9
#include
#include
#include
using namespace std;
const double INF=1e50;
struct P
{
double x,y;
int type;
}p[240000],b[2...
分类:
其他好文 时间:
2015-03-09 19:06:29
阅读次数:
174
部分理论和图来自:http://www.cnblogs.com/jingmoxukong/p/4308823.html (侵删)归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即...
分类:
编程语言 时间:
2015-03-09 18:56:30
阅读次数:
158
第一种:暴力枚举所有的子数组,然后比较选出最大,时间复杂度O(n^2)第二种:分治法,参见算法导论,时间复杂度O(nlogn)第三种:动态规划,时间复杂度O(n)1、A[1..j+1]的最大子数组为:max{A[1..j] , A[i,j+1](10?A[j+1]+K[j]:A[j+1](以A[j+...
分类:
编程语言 时间:
2015-03-08 15:37:45
阅读次数:
156
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
int Par...
分类:
编程语言 时间:
2015-03-08 14:19:53
阅读次数:
137
个人理解简单的说, 分治法就是把一个相对大的问题分成类似的小问题, 求得这些小问题的解(相对简单)再进行适当的合并, 最终就解决了一个相对复杂的问题。这其中蕴含的思想我自己总结的如下:不是正面来解决一个相对复杂的问题, 而是将这个问题进行分解成为相对来说简单并且不是那么复杂的问题, 这是一种化繁为简...
分类:
其他好文 时间:
2015-03-06 20:30:42
阅读次数:
128
插入排序是一种最基本的排序方法,时间复杂度为O(nlogn)。效率较高, 而且在笔试面试中经常会被问到, 要多写多练做到可以随时随手写出快排的目标。快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMet...
分类:
编程语言 时间:
2015-03-06 15:24:53
阅读次数:
128