数据结构
文章平均质量分 79
IceS2017
这个作者很懒,什么都没留下…
展开
-
图的拓扑排序
用顶点表示活动、有向边表示活动之间的先后关系的有向无环(DAG)图称为顶点活动网,简称AOV网。对于一个又向无环图DAG,若将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,属于边的集合,若u出现在v之前,这样的线性序列称为拓扑序列。拓扑排序基本思想:1.在有向图中选取入度为0的顶点,并输出。2.从有向图中删除该顶点及其该顶点的出边。3.重复1和2。4.输出剩原创 2017-03-02 12:04:20 · 873 阅读 · 0 评论 -
直接插入排序和希尔排序
#if ! defined(INSERTSORT_H)#define INSERTSORT_H#include#define MAXSIZE 100typedef int KeyType;//关键字类型用来比较typedef char InfoType;//其他类型的信息typedef struct{ KeyType key;//排序用的关键字 InfoType other原创 2017-03-02 20:01:38 · 344 阅读 · 0 评论 -
交换排序
交换排序基本思想:两两比较待排序记录的关键字,如果发现两个记录的次序相反时即进行交换,直到所有记录都没有反序时为止。***冒泡排序***基本思路:通过相邻元素之间的比较和交换,使关键字较小的元素逐渐从底部移向顶部,就像水底下的气泡一样逐渐向上冒泡,所以称为冒泡算法。步骤:1.从最后一个开始比较相邻的两个比较。2.标记交换,直到没有交换。void BubbleSort(Rec原创 2017-03-03 09:46:30 · 280 阅读 · 0 评论 -
并归排序
***并归排序***基本思想:首先将待排序文件看成n个长度为1的有序子文件,得到n/2个长度为2的有序子文件;然后再把这n/2个有序的子文件两两归并,如此反复,直到最后得到一个长度为n的有序文件为止。核心是相邻的两个数组。分割比较难。#if ! defined(MERGESORT_H)#define MERGESORT_H#include#define MAXSIZE 100原创 2017-03-04 08:58:40 · 728 阅读 · 0 评论 -
选择排序和堆排序
选择排序基本思想:每一趟在待排序的记录中选出关键字最小的记录,依次存放在已排好序的记录序列的最后,直到全部记录排序完为止。1.直接选择排序基本思想:每次从待排序的无序区中选择出关键字值最小的记录,将该记录与该区中的第一个记录交换位置。/*直接选择排序基本思想:每次从待排序的无序区中选择出关键字值最小的记录,将该记录与该区中的第一个记录交换位置。*/void SelectSort原创 2017-03-03 18:48:15 · 263 阅读 · 0 评论 -
第6章 图的基本算法
一、最小生成树和最短路径的区别 最小生成树是指生成树各边的权值总和最小的树,保证整体树的权值是最小,并不保证任意两点间的权值最小。 最短路径是保证从起始点到指定其余点的权值和最小,即求从起点到其余各点路径上权值和最小的路径。二、3种主要算法实现 1.Prim算法: 思路:从指定点开始原创 2017-03-01 06:52:09 · 431 阅读 · 0 评论 -
基数排序
首先,介绍箱排序。箱排序的基本思想是:设置若干个箱子,依次扫描待排序的记录,把关键字等于k的记录全部都装入第k个箱子里,然后按序号依次将各非空的箱子首位连接起来。箱排序的抽象算法:假设关键字的取值范围是0..m-1的整数,并设B[0..m-1]是一个记录数组,它的每一个分量都是一个链队列,代表一个箱子,B[i].f和B[i].e分别表示该队列的头指针和尾指针。箱排序缺点:只适用于关键字原创 2017-03-04 18:02:26 · 410 阅读 · 0 评论