1、算法思想 快速排序是一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 (1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的...
分类:
编程语言 时间:
2015-10-11 00:31:29
阅读次数:
479
---恢复内容开始---Bellman—Ford算法能在更普遍的情况下(存在负权边)解决单源点最短路径问题。对于给定的带权(有向或无向)图G=(V,E),其源点为s,加权函数w是边集E的映射。对图G运行Bellman—Ford算法的结果是一个布尔值,表明图中是否存在着一个从源点s可达的负权回路。若存...
分类:
编程语言 时间:
2015-10-09 13:57:13
阅读次数:
206
十一假期于实验室无趣,逐研究起数据结构之排序。起初觉得就那么几种排序,两三天就搞定了,后来随着研究的深入,发觉里面有不少东西。本文介绍常用的排序算法,主要从以下几个方面:算法的介绍、算法思想、算法步骤、算法优缺点、算法实现、运行结果、算法优化等。最后对本文进行总结。本文为作者原创,程序经测试无误。部...
分类:
编程语言 时间:
2015-10-09 00:36:46
阅读次数:
324
方法一算法思想:用后序遍历的方式遍历二叉树的每一个结点,在遍历到一个结点之前我们已经遍历了它的左右子树,只要在遍历每个结点的时候记录下它的高度,我们就可以一边遍历一边判断每个结点是不是平衡的。代码如下: 1 typedef struct BinaryTree 2 { 3 int data; ...
分类:
其他好文 时间:
2015-10-08 21:29:58
阅读次数:
261
算法思想:由于二叉排序树的中序遍历可以得到一个有序的序列,因此,我们可以使用中序遍历进行求解。代码如下: 1 #include 2 using namespace std; 3 4 typedef struct BinaryTree 5 { 6 int data; 7 Binar...
分类:
编程语言 时间:
2015-10-08 18:01:02
阅读次数:
242
算法思想:先序遍历,递归实现。先判断根节点是否相等,然后在判断左右子树是否相等。代码如下 1 //二叉树节点结构体 2 struct BinaryNode 3 { 4 int data; 5 BinaryNode * lc; 6 BinaryNode * rc; 7 }*BT...
分类:
其他好文 时间:
2015-10-08 14:23:06
阅读次数:
167
新近到手一本《机器学习实战》(Peter Harringtom),兴奋之余,本着好记性不如烂笔头的真理,打算将读书的过程记录下来,形成读书笔记,重点记录自己所理解的算法思想与应用示例。本人野生猿一枚,贻笑大方之处,敬请谅解。机器学习可以揭示数据背后的真实含义,而数据以及基于数据做出的决策是非常重要的...
分类:
其他好文 时间:
2015-09-27 12:28:45
阅读次数:
139
计数排序是一种能够达到运行时间能够线性时间θ(n)的排序算法。在排序算法里算是最快的算法之一,当然,他有很强烈的前提。下面开始介绍一下技术排序(Counting Sort)。算法思想计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,此处k为某个整数。这样可以用一个数组C[0..k]来记录待排序数组里元素的数量。当k=O(n)时,计数排序的运行时间为θ(n).
注:关于C[0..k],用...
分类:
编程语言 时间:
2015-09-18 12:03:25
阅读次数:
209
归并算法采用分治法,利用二叉树的概念来实现排序算法,建立在递归合并操作的基础上算法。通过将数组分组到两个序列,排序,然后在归并排序,进而实现算法。归并排序算法就是利用归并的思想实现的排序算法。 一、算法思想 数组序列{16, 7, 13, 10, 9, 15, 3, 2, 5, 8, 12, 1, ...
分类:
编程语言 时间:
2015-09-17 21:29:44
阅读次数:
194