拓扑排序虽是一种排序,但是它跟平时所接触的sort或者qsort不同,排序的意义不同。拓扑排序针对有向无回路图(DAG)而言的,不应用与存在回路的有向图。【图论】广度优先搜索和深度优先搜索 有说到了BFS和DFS,拓扑排序是DFS的一个应用。有向无回路图能说明事件的发生的先后的顺序。比如穿衣服,士兵...
分类:
其他好文 时间:
2014-07-11 20:11:54
阅读次数:
298
题目:编写一个函数,它用于对一个任何类型的数组进行排序。算法核心代码sort函数实现/**功能说明:sort函数可以对不同类型的数据进行排序参数:1、一个指向需要排序的数组的第一个值的指针。2、数组中元素的个数。 3、每个数组元素的长度。4、一个指向比较回调函数的指针 **/void sort(vo...
分类:
其他好文 时间:
2014-07-11 10:06:10
阅读次数:
163
到目前为止, 我们已经学习到了插入排序, 冒泡排序, 选择排序(selection)。 这些排序算法都是comparision based sorting algorithms(即涉及到元素大小的比较来决定元素的先后顺序)。 而且算法的时间复杂度上均为O(n^2)。但是comparision based 的排序算法远非这几个算法。 而且可以通过利用其它的一些手段(例如divide and conq...
分类:
编程语言 时间:
2014-07-11 08:29:25
阅读次数:
441
在java语言中,String是一个包含char数组、其他字段,方法组成的java类。而在我们的coding生涯中,字符串又往往是我们最常也是最多打交道的,因此下面的一些常用的方法列举一下:toCharArray()//将此字符串转换为一个新的字符数组Arrays.sort()//对数组进行排序Ar...
分类:
编程语言 时间:
2014-07-09 17:39:04
阅读次数:
294
二叉排序树(Binary Sort Tree):或者是一颗空树,或者是具有以下性质的树:(1)若它的左子树不空,则左子树上所以结点的值均小于它的根节点的值;(2)若它的右子树不空,则右子树上的所以结点的值均大于它的根节点的值;(3)它的左、右子树也分别是二叉排序树。
二叉排序树的基本操作均可以在O(h)时间内完成(算法导论p165)。
相关操作代码如下:
int InsertBST(BiTr...
分类:
其他好文 时间:
2014-07-09 13:12:09
阅读次数:
160
程序开发人员经常要分析程序日志,包括自己打印的日志及使用的其它软件打印的日志,如php,nginx日志等,linux环境下分析日志有一些内置命令可以使用,如grep,sort,uniq,awk等,其中最强大的是awk,是作为一门小巧的文本处理语言存在的,但由于它是一门语言,功能强大,但在命令行下使用并不那么方便,因为awk是面向计算而不是面向统计的。awk可以定义变量,可以进行计算,命令行下就是一...
分类:
数据库 时间:
2014-07-09 13:02:58
阅读次数:
279
头文件:
#include
using namespace std;
1.默认的sort函数是按升序排序。
sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址
2.可以自己写一个cmp函数,按特定意图进行排序。
例如 :
1).对数组a降序排序
int cmp( const int &a, const int &b ){...
分类:
其他好文 时间:
2014-07-08 20:11:02
阅读次数:
172
一、插入排序
直接插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
代码实现:...
分类:
其他好文 时间:
2014-07-08 14:55:41
阅读次数:
232
Topological Sort题解。本题是简单的入门题目。
Topological Sort的思想很简单,就是按没有入度的点,先输出,然后删除这个点的出度。然后输出下一组没有入度的点。
如何实现也是很简单的:
这里使用邻接表,建图的时候反过来建图,建立一个入度邻接表。
然后使用一个vis数组,记录访问过的节点,也可以根据这个信息知道哪些是已经输出的点,这个时候这些点的入度可以不算为当前入...
分类:
其他好文 时间:
2014-07-08 12:46:41
阅读次数:
282