上一页 1 ··· 5 6 7 8 9 10 下一页
摘要: 假设待排表长为n,从后往前两两比较相邻元素的值,若为逆序,则交换他们,知道序列比较完。我们称它为一趟冒泡排序,结果将最小的元素交换到待排序列的第一个位置。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序列减少一个元素,每趟的结果把序列中的最小元素放到了序列的最终位置上,……,这样最多n-1趟冒泡就能把所有元素排序好。 阅读全文
posted @ 2015-10-10 22:44 HOU_JUN 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 希尔排序基本思想 基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2=1;dk=dk/2)//控制步长变化,每次步长缩小为原来的1/2,直到1 5 { 6 ... 阅读全文
posted @ 2015-10-10 21:27 HOU_JUN 阅读(4078) 评论(0) 推荐(0) 编辑
摘要: 直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。1.简单方法 首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后将R[k..i-1]中的记录均后... 阅读全文
posted @ 2015-10-10 16:26 HOU_JUN 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 解析器每次只能传入一个标签,并且返回标签对应的内容,要对所有标签进行解析,那么就要多次调用parser()。当然,对于一篇文章,就对应一个解析器对象,parser()是对外的一个函数,接收标签,并从对象中解析出便签包含的内容。也就是说,创建一个对象可以对这个对象调用多次parser(string tag)对文章进行解析。 阅读全文
posted @ 2015-10-10 15:01 HOU_JUN 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 在文本搜索引擎项目中,需要对已排序的文章进行摘要提取,然后与标题,路径一起封装成Json数据返回客户端。因此这里我自己写一个自动摘要,来大概完成这个任务。在自动摘要提取过程中,使用了一个分词库:CppJieba分词库。因此在头文件中包含了头文件 “Application.hpp”。思路: 1、... 阅读全文
posted @ 2015-10-10 12:57 HOU_JUN 阅读(5742) 评论(1) 推荐(1) 编辑
摘要: 方法一算法思想:用后序遍历的方式遍历二叉树的每一个结点,在遍历到一个结点之前我们已经遍历了它的左右子树,只要在遍历每个结点的时候记录下它的高度,我们就可以一边遍历一边判断每个结点是不是平衡的。代码如下: 1 typedef struct BinaryTree 2 { 3 int data; ... 阅读全文
posted @ 2015-10-08 20:06 HOU_JUN 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 算法思想:由于二叉排序树的中序遍历可以得到一个有序的序列,因此,我们可以使用中序遍历进行求解。代码如下: 1 #include 2 using namespace std; 3 4 typedef struct BinaryTree 5 { 6 int data; 7 Binar... 阅读全文
posted @ 2015-10-08 17:35 HOU_JUN 阅读(2607) 评论(0) 推荐(0) 编辑
摘要: 知识:在先序遍历中,第一个结点就是二叉树的根节点;而在中序遍历中,根节点必然将中序序列分割成两个子序列,前一个子序列就是根节点的左子树的中序序列,后一个是根节点的右子树的中序序列。同样,给定后序序列和中序序列,按层次序列和中序序列可以也可以唯一确定一棵二叉树。但是,如果知道二叉树的先序序列和后序序列... 阅读全文
posted @ 2015-10-08 14:58 HOU_JUN 阅读(2816) 评论(0) 推荐(0) 编辑
摘要: 如果我们把二叉树视为一个图,父子几点之间的连线视为是双向的,我们可以把“距离”定义为来两结点之间边的个数。计算一个二叉树的最大距离有两种情况:情况A:路径经过左子树,通过根节点,再到右子树饿最深节点。情况B:路径不经过根节点,而是左子树或者右子树的最大距离路径,取其大者。只需要计算这两个情况的路径距... 阅读全文
posted @ 2015-10-08 13:57 HOU_JUN 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 二叉树左右子结点可旋转是指:可以把二叉树的左结点旋转成为右子树,把右子树的结点旋转成为左子树。这个与判断两棵二叉树的逻辑相同,只是要交叉判断。算法思路:在文章http://www.cnblogs.com/houjun/p/4860680.html的基础上,把判断代码改成如下:1 if(T1->d... 阅读全文
posted @ 2015-10-08 13:07 HOU_JUN 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 算法思想:先序遍历,递归实现。先判断根节点是否相等,然后在判断左右子树是否相等。代码如下 1 //二叉树节点结构体 2 struct BinaryNode 3 { 4 int data; 5 BinaryNode * lc; 6 BinaryNode * rc; 7 }*BT... 阅读全文
posted @ 2015-10-08 12:57 HOU_JUN 阅读(17926) 评论(0) 推荐(1) 编辑
摘要: 编写守护进程程序时需遵循一些基本规则,以防止产生不必要的交互作用,下面先说明这些规则,然后给出一个按照这些规则编写的函数deamonize. (1)首先,调用umask将文件创建屏蔽字设置为一个已知值(通常为0)。 (2)调用fork,然后是父进程exit。 (3)调用setsid创建一个新... 阅读全文
posted @ 2015-10-08 11:35 HOU_JUN 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 在看UNIX环境高级编程是,碰到一个头文件"apue.h",搜一下别人的帖子,其实apue.h是作者自己写的一个文件,包含了常用的头文件,系统不自带。其中包含了常用的头文件,以及出错处理函数的定义。使用起来确实很方便。apue.h内容如下:[cpp]#ifndef_APUE_H#define_A... 阅读全文
posted @ 2015-10-08 10:42 HOU_JUN 阅读(1092) 评论(0) 推荐(0) 编辑
摘要: 这也是我们聚会时常常做的游戏之一。 算法思路:   此处我使用循环链表模拟人围城一圈,每一个结点代表一个人。链表是一个有序链表,链表结点数据域是一个整型,代表人的序号。出局等同于链表删除元素,每次出局后重新从1k开始数。知道剩下最后一个。最后一个的判定是:while((p-num)!=(p-next-num))。循环跳出,就是到最后一个人。 阅读全文
posted @ 2015-10-07 23:56 HOU_JUN 阅读(2480) 评论(0) 推荐(0) 编辑
摘要: 算法的思想: 采用二叉树的后序遍历非递归算法。由于后序遍历非递归算法使用一个栈实现,每次都会在一条路径上走到最底层才向上访问,再向右访问。因此,记录下栈在遍历中的最大值,即为二叉树的最大深度。#include #include using namespace std;typedef struct ... 阅读全文
posted @ 2015-10-07 23:45 HOU_JUN 阅读(14640) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 下一页