1.简介 建立一个最大堆(线性时间) 执行N-1次下滤操作,每次下滤将堆的最后一个元素同第一个元素进行交换。 时间复杂度为:O(NlogN) 2.实现 Read More
posted @ 2016-10-19 16:49 mCat Views(231) Comments(0) Diggs(0) Edit
1.简介 shellsort又称为最小增量排序。 使用增量序列h1,h2,...ht,在使用增量hk的一趟排序后,对于间隔为k的元素都是排序后的。 使用希尔增量排序时最坏运行时间为theta(N2) 增量序列通常的选择为:ht = N/2,hk = hk+1/2 2.实现 Read More
posted @ 2016-10-19 16:33 mCat Views(179) Comments(0) Diggs(0) Edit
1.原理 插入排序由N-1趟排序组成,对于P=1趟到第P=N-1趟,插入排序保证位置0到位置P上的元素为已排序状态。 时间复杂度为O(N2),平均时间为Theta(N2) 2.实现 Read More
posted @ 2016-10-19 15:14 mCat Views(159) Comments(0) Diggs(0) Edit
1.分类 内部排序:假设整个排序工作能够在主存中完成(元素的个数相对较少)。 外部排序:不能在主存中完成,而必须在磁盘或者磁带上完成的排序。 2.内部排序: 1.插入排序 2.希尔排序 3.归并排序 4.快速排序 Read More
posted @ 2016-10-19 13:31 mCat Views(134) Comments(0) Diggs(0) Edit
1.二叉树 1. 定义: 是每个节点最多只能有两个儿子的树。 2.应用 查找树:所有节点左小右大 平衡树:左右子树深度差1 判定数:分支查找树(例如12个球如何只称3次就能分出轻重) 带权树:路径带权 最优树:带权路径长度最短的树,通信中的压缩编码 2.查找二叉树 1.定义 为每个节点指定一个关键值 Read More
posted @ 2016-10-18 11:03 mCat Views(190) Comments(0) Diggs(0) Edit
1.树的基础 使用递归定义:一棵树是一些点的集合。这个集合若非空,则树由树根(根节点)和0或者多个非空子树组成。每个子树都和根节点通过一个边相连。 一棵树是N个节点和N-1条边的集合。 n1到nk的路径为节点n1,n2,...,nk的一个序列,路径长时路径上的边数:k-1; 节点的深度是该节点到根的 Read More
posted @ 2016-10-18 06:45 mCat Views(140) Comments(0) Diggs(0) Edit
1.递归与非递归的利弊 非递归程序一般比等价的递归程序要快,但是速度代价是由于去除了递归使得程序的清晰性不足。 Read More
posted @ 2016-10-18 06:24 mCat Views(145) Comments(0) Diggs(0) Edit
1.队列的基础 队列是插入只能在一端(后端),删除只能在另一端(前端)的线性表,是先进先出模型。 1. 入队:在表的末端插入; 2. 出队:在表的开头删除元素; 2.队列的应用 汽车加油站 模拟打印机缓冲区 CPU分时系统、计算机网络 打印杨辉三角 3.队列的数组实现 1. fatal.h 2.qu Read More
posted @ 2016-10-18 06:05 mCat Views(449) Comments(0) Diggs(0) Edit
1.栈基础 栈是插入和删除操作限制在一端(即栈顶)的表,是先进后出模型。 1.栈的特点 入栈:新元素的插入,成为新的栈顶元素; 出栈:栈顶元素的删除,栈顶指向相邻元素。 2.应用场景: 数制转换 括号匹配的检验 表达式求值 迷宫求解 行编辑程序 二叉树的遍历 2.栈的链表实现 1. fata.h 2 Read More
posted @ 2016-10-17 18:57 mCat Views(463) Comments(0) Diggs(0) Edit
1.list.h 2. fatal.h 3.list.c 4.testlist.c Read More
posted @ 2016-10-17 11:06 mCat Views(161) Comments(0) Diggs(0) Edit