现在编程也算是走上门了,但是没有把算法掌握下来只能说自己还是门外汉,所以以后我们就开始努力的学习算法,现在把自己每天的学习分享在这里希望大家能喜欢,并且我也要在这里整理我一天的学习和思路,。二分查找。。大家经常需要在一个数组中寻找某个值。如果是一个已经拍好序的话那么可以很快的找到。我们考虑下暴力查找...
分类:
编程语言 时间:
2014-11-14 22:30:25
阅读次数:
272
六、快速排序 快速排序是通过一种把集合中的元素按照第一个元素(这个是动态过程变化)作为标杆来分为两部分,前面一部分比他小(或等),后面一部分比它大。然后就是通过适当的程序来递归这个过程,当最后没有交换说明需要退出递归。 上图。 快速排序使用分治法(Divide and conquer)策略来把...
分类:
编程语言 时间:
2014-11-09 17:53:27
阅读次数:
320
#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 100005;const long long INF = 0xfffffff;struct P.....
分类:
其他好文 时间:
2014-11-06 12:28:22
阅读次数:
155
快速排序和归并排序都是分治法的典型应用,主要区别在于,快速排序重在分,而归并排序重在治。 快速排序基于以下假设:已知x,序列中一半的数据大于x,另一半小于等于x,且小于等于x的数据在数组前一半,大于x的在后一半。这种分割不需要额外的存储空间,对两侧数据分别递归进行,最终数组排序即可完成。 实...
分类:
编程语言 时间:
2014-11-06 12:17:59
阅读次数:
181
看书、思考、写代码!
/***************************************
* copyright@hustyangju
* blog: http://blog.csdn.net/hustyangju
* 题目:分治法求数组最大连续子序列和
* 思路:分解成子问题+合并答案
* 时间复杂度:O(n lgn)
* 空间复杂度:O(1)
********...
分类:
编程语言 时间:
2014-11-05 23:17:53
阅读次数:
209
分治法在将大问题一步一步两两分,直到划分成可以解决的小问题时,求出这些小问题的解,然后再将小问题合成大问题的解,但是前提是这些小问题在求解是不受到其他小问题的解的影响的。...
分类:
其他好文 时间:
2014-11-05 17:12:01
阅读次数:
158
高速排序因为排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被採用,再加上高速排序思想----分治法也确实有用,因此非常多软件公司的笔试面试,包含像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也经常出现高速排序的身影。总的说来,要直接默写出高速排序...
分类:
编程语言 时间:
2014-11-05 14:31:13
阅读次数:
222
?比较著名的算法有 冒泡法,贪?心算法,递归法,迭代法,分治法,动态规划法,分?支限界 法,回溯法,A*寻路算法 等等。? ps:记录下,日后多多练习这些算法。
分类:
编程语言 时间:
2014-11-03 06:49:37
阅读次数:
208
/* 动态规划和分治法相似,都是通过组合子问题的解来求解原问题。 但分治法是将问题划分为互不相交的子问题,递归地求解子问题,再将它们的解组合起来,求出原问题的解。与之相反,动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子问题。在这种情况下,分治法会做很多不必要的工作。 动态规划...
分类:
其他好文 时间:
2014-11-03 01:15:38
阅读次数:
282
/*------------------ 求解最大子数组问题 --------------- 最大子数组,就是求解一个数组的所有元素的各种组合中,和最大的那个子数组。在这种情况下,如果元素值全部非负,那么最大子数组当然是所有元素。但是如果有负值的元素存在,那么久需要找到一个由数组中连续几个...
分类:
编程语言 时间:
2014-11-02 20:48:31
阅读次数:
324