插入排序的工作方式就像许多人排序一手扑克牌。开始的时候,我们的左手为空并且桌子上的牌面向下。
分类:
编程语言 时间:
2015-03-31 21:49:31
阅读次数:
281
希尔排序的实质就是分组插入排序, 是对直接插入排序的改进。 时间复杂度为O(nlongn), 跟快速排序, 堆排序的时间复杂度相同, 是一种较为快速的排序方式。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的 元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排...
分类:
编程语言 时间:
2015-03-20 23:40:01
阅读次数:
192
分治模式在每层递归时都有三个步骤:分解,解决,合并归并排序算法完全遵循分治模式:分解:分解待排序的n个元素的序列成各具n/2个元素的两个子序列解决:使用归并排序递归的排序两个子序列合并:合并两个已排序的子序列以产生已排序的答案分析分治算法所需要的时间计算:
假设T(n)是规模为n的一个问题的运行时间,若问题足够小,如对某个常量c,n≦c,则直接求解需要常量时将,我们将其写作Θ(1).假设吧原问题...
分类:
编程语言 时间:
2015-03-13 23:50:31
阅读次数:
438
最近在实施算法的时候,感觉数学知识不足了,在此大补一哈
--------------------------------------------------微积分----------------------------------------------------------
微积分公开课:
麻省理工学院:单变量微积分
http://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/
http...
分类:
编程语言 时间:
2015-03-13 12:47:52
阅读次数:
170
算法基础知识算法的五大要素
有穷性:算法必须能够在有限个步骤内完成。
确定性:算法的每一步必须有确定的定义。
输入
输出
可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成
循环不变式循环中的循环不变式可以帮助我们理解算法的正确性。为了证明算法的正确,必须证明循环不变式的三个性质:
1. 初始化:循环不变式在循环开始之前是正确的。
2. 保持:循环不变式在循环...
分类:
编程语言 时间:
2015-02-25 19:56:35
阅读次数:
163
算法基础目录概述时间复杂度空间复杂度经典算法实用算法概述时间复杂度空间复杂度经典算法实用算法
分类:
编程语言 时间:
2015-02-21 10:54:31
阅读次数:
205
题目链接:click here
三种方法都用了一下,对比得出EK最少,只用46ms。
【Edmonds-Karp算法】
基础的最大流算法,每次BFS寻找最短路进行增广,找出一条残余路径就可以了。然后对残余网络进行增广,不要忘记正向增广,相当于负向减少,也要在图中保存记录。
最后求一个割集来得到最大流,效率O(VE2),“找任意路径”最简单的方法是用DFS,但是数据要稍微增加就会变得较慢...
分类:
编程语言 时间:
2015-02-11 18:36:39
阅读次数:
252
数据结构概念与算法基础
一、数据结构概念
1.数据:是描述客观事务的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
2.数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被成为记录。比如畜类中,牛、马、羊都属于数据元素。
3.数据项:一个数据元素可以由若...
分类:
编程语言 时间:
2014-12-28 20:51:44
阅读次数:
245