随笔分类 -  Algorithm

摘要:一.排序算法 1.插入排序 1) 直接插入排序:(插入类) 最好情况(顺序有序): 1)比较次数: $\sum_{i=2}^{n} 1=n-1$ 2)移动次数: 0 最坏情况(逆序有序): 1)比较次数: $\sum_{i=2}^{n} i=\frac {(n+2)(n-1)}{2}$ 2)移动次数 阅读全文
posted @ 2018-12-27 15:50 byjz 阅读(420) 评论(0) 推荐(0)
摘要:一.查找的算法 1.顺序查找 2.折半查找(二分查找) 3.折半查找(二分查找)递归 二.字符串匹配 1.简单的模式匹配算法(朴素模式匹配算法) 2.KMP算法 算法需要先求出模式串的next值: 也可求出改进后的nextval值: 以下是KMP算法: 阅读全文
posted @ 2018-12-27 14:08 byjz 阅读(221) 评论(0) 推荐(0)
摘要:一.图的算法 邻接矩阵表示的数据结构 邻接表表示的数据结构 1.写出从图的邻接表表示转换成邻接矩阵表示的算法 二.图的遍历 说明: 以下图的算法既可以使用邻接矩阵的方式也可以使用邻接表存储的方式,因此每种算法都可以换成另一种存储形式,只需要把MGraph(邻接矩阵存储)换成ALGraph(邻接表存储 阅读全文
posted @ 2018-12-27 12:36 byjz 阅读(284) 评论(0) 推荐(0)
摘要:一.树与二叉树相关算法 1.二叉树按顺序结构存储,求编号为i和j的两个结点的最近公共祖先结点的值 2.二叉树前序遍历非递归算法 3.二叉树中序遍历非递归算法 4.二叉树后序遍历非递归算法 5.二叉树层次遍历算法 6.二叉树的自下而上,从右到左的层次遍历算法 7.求二叉树高度(递归) 8.求二叉树高度 阅读全文
posted @ 2018-12-26 20:40 byjz 阅读(471) 评论(0) 推荐(0)
摘要:一.栈和队列综合(算法) 1.判断单链表(带头结点)的结点值(字符型)是否中心对称 2.共享栈由两个顺序栈S1,S2构成,总大小为100,请设计S1,S2入栈,出栈的算法 3.如果希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分队头指针front和队尾rear 阅读全文
posted @ 2018-12-26 14:04 byjz 阅读(417) 评论(0) 推荐(0)
摘要:一. 线性表基础算法 1.线性表插入操作 说明: 插入操作: 可选位置为1≤i≤L.length+1 最好情况: 表尾(i=n+1)插入, O(1) 最坏情况: 表头(i=1)插入, O(n) 平均情况: 设 $Pi=\frac {1}{(n+1)}$ 是在第i个位置插入一个结点的概率,则在长度为n 阅读全文
posted @ 2018-12-25 13:17 byjz 阅读(439) 评论(0) 推荐(0)