2017年5月21日

C++读写TXT文件中的string或者int型数据以及string流的用法

摘要: 对文件的读写操作是我们在做项目时经常用到的,在网上看了很多博客,结合自身的项目经验总结了一下,因此写了这篇博客,有些地方可能直接从别的博客中复制过来,但是都会注明出处。 一、文件的输入输出 fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。 ifstream -- 从已 阅读全文

posted @ 2017-05-21 19:29 wu_xin 阅读(77864) 评论(1) 推荐(9) 编辑

2017年5月20日

不相交集ADT--链表实现

摘要: 每一个集合用用一个链表来表示。链表的第一个对象作为它所在集合的代表。链表中每个对象都包含一个集合成员,一个指向下一个对象的指针,以及指向代表的指针。每个链表含head和tail指针,head指向链表的代表,tail指向链表中最后的对象。 如下图所示: Union的简单实现:将x所在的链表拼接到y所在 阅读全文

posted @ 2017-05-20 18:11 wu_xin 阅读(263) 评论(0) 推荐(0) 编辑

2017年5月19日

不相交集ADT--数组实现

摘要: 不相交集是解决等价问题的一种有效的数据结构,之所以称之为有效是因为,这个数据结构简单(几行代码,一个简单数组就可以搞定),快速(每个操作基本上可以在常数平均时间内搞定)。 首先我们要明白什么叫做等价关系,而在这个之前要先有一个关系(relation)的定义 Relation:定义在数据集S上的关系R 阅读全文

posted @ 2017-05-19 21:59 wu_xin 阅读(186) 评论(0) 推荐(0) 编辑

最小生成树--prim算法

摘要: 一个无向图G的最小生成树就是由该图的那些连接G的所有顶点的边构成的树,且其总价值最低,因此,最小生成树存在的充分必要条件为图G是连通的,简单点说如下: 1.树的定义:有n个顶点和n-1条边,没有回路的称为树 生成树的定义:生成树就是包含全部顶点,n-1(n为顶点数)条边都在图里就是生成树 最小:指的 阅读全文

posted @ 2017-05-19 20:56 wu_xin 阅读(427) 评论(0) 推荐(0) 编辑

2017年5月15日

桶排序

摘要: 假设现在有一组小于M的正整数 a1、 a2 ,…… ,an ,对它们排序可以采用以下的思路:使用一个大小为M的数组buckets,这个数组的每一个单元称为一个个的bucket,桶,初始化全部为0。扫描数组a,当扫描到ai的时候,buckets[ai] 加1。这样当a扫描完之后,扫描buckets,打 阅读全文

posted @ 2017-05-15 21:13 wu_xin 阅读(123) 评论(0) 推荐(0) 编辑

选择问题(选择数组中第K小的数)

摘要: 由排序问题可以引申出选择问题,选择问题就是选择并返回数组中第k小的数,如果把数组全部排好序,在返回第k小的数,也能正确返回,但是这无疑做了很多无用功,由上篇博客中提到的快速排序,稍稍修改下就可以以较小的时间复杂度返回正确结果。 代码如下: 思想很不错,值得学习。 夜深了,,, 唉,失恋的人就是矫情, 阅读全文

posted @ 2017-05-15 20:12 wu_xin 阅读(257) 评论(0) 推荐(0) 编辑

快速排序

摘要: 快速排序是在实践中最快的已知算法,它的平均运行时间是O(NlogN),该算法的基本思想如下: 1、如果数组S中的元素个数为0或者1,则直接返回 2、在原来要排序的数组中选取一个元素v,称为枢纽元 3、将S-{v}分成两个不想交的集合:S1为小于等于v的元素,S2为大于等于v的元素 4、重复上面的步骤 阅读全文

posted @ 2017-05-15 19:47 wu_xin 阅读(116) 评论(0) 推荐(0) 编辑

2017年5月11日

推排序

摘要: 这篇博客讨论一下堆排序。 堆排序就是利用堆这种数据结构来实现排序,堆具有堆序性,最小堆的最小值一定在开头,最大堆的最大值也在开头,因此,我们可以利用堆来排序。 我们选用最大堆来排序,首先在原来的数组上构建一个最大堆,因此数组的开头就是最大值,我们把这个最大值和堆的最后一个元素交换位置,同时堆的大小减 阅读全文

posted @ 2017-05-11 20:08 wu_xin 阅读(207) 评论(0) 推荐(0) 编辑

希尔排序

摘要: 在第一篇博客中论述了几种排序的方法,这里再论述一下另外一种排序方法:希尔排序 希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。 希尔排序的基本思想是: 把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。 随着步长逐渐减小,所分成的组 阅读全文

posted @ 2017-05-11 19:28 wu_xin 阅读(136) 评论(0) 推荐(0) 编辑

2017年5月10日

数据结构--二项队列的思想与实现

摘要: 二项队列不是一颗堆序的树,而是堆序树的集合,称为森林,森林中每棵树都是有约束的形式,称为二项树,高度为k的第k个二项树Bk由一个根节点和B0, B1, .......B(k-1)构成,高度为k的二项树的结点个数为2^k,因此可以用二项树的结合表示任意大小的优先队列。例如,大小为13的优先队列就可以用 阅读全文

posted @ 2017-05-10 20:47 wu_xin 阅读(332) 评论(0) 推荐(0) 编辑

导航