![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法与数据结构 の 相关概念
文章平均质量分 66
#笔记分享
浙江大学数据结构 陈越
https://www.bilibili.com/video/BV1H4411N7oD?p=126
今天你头秃了吗?
这个作者很懒,什么都没留下…
展开
-
【C++の相关概念】指针数组 数组指针 二维数组传参
指针数组和数组指针指针数组:是指一个数组里面装着指针,也即指针数组是一个数组;int *a[10]; 数组指针:是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已;int(*a)[10]; //a指向一个列数为10的二维数组区分方法:主要看后面的两个字是什么(前面是修饰作用),因此指针数组是数组,而数组指针是指针。二维数组传参形参为二维数组声明void function(int a[m][n]);//函数声明void function(int (&a)[m原创 2021-01-18 21:41:53 · 347 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】散列表
这里写目录标题概念散列表构造冲突解决开放地址法:创建查找(以平方探测为例)插入(以平方探测为例)链地址法 :创建查找插入性能分析概念将关键词存储在一个散列表中,有两项基本工作:计算位置: 构造散列函数确定关键词存储位置;解决冲突: 应用某种策略解决多个关键词位置相同的问题。散列表构造1.直接定址法 h(key) = a * key + b (a、b为常数)2.除留余数法 h(key) = key mod p (一般,p 取素数 )3.数字分析法 分析数字关键字在各位上的变化情况,取比较随机原创 2020-08-05 17:54:37 · 150 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】排序算法
这里写目录标题前提一览表平方阶排序(简单排序)冒泡排序插入排序选择排序O(n+§)) 排序希尔排序线性对数阶排序归并排序快速排序堆排序线性阶排序桶排序基数排序表排序间接排序物理排序参考前提1.排序元素都为正整数2.排序方向为从小到大3.排序基于比较的方式(> = < 有定义)4.没有一种排序是任何情况下都表现最好的5.**稳定性:**任意两个相等的数据, 排序前后的相对位置不发生改变6.原理:对于一个无序序列,排序过程就是消除逆序对的过程(对于下标i<j,如果A[i]>原创 2020-08-05 13:41:18 · 134 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】图
这里写目录标题图相关概念图的表示邻接矩阵(更适用于稠密图(边多))邻接表(更适用于稀疏图(边少))相关操作创建插入邻接矩阵邻接表遍历深度优先搜索(DFS)广度优先搜索(BFS)图不连通的遍历操作单源最短路径无权图有权图多源最短路径AOV网络AOE网络图相关概念图表示“多对多”的关系,包括一组顶点(使用V表示顶点集合),度表示依附于某顶点v的边数,入度表示指以顶点为终点的弧的数目,出度表示指以顶点为起点的弧的数目,领接点表示与该顶点直接相连的边。一组边或弧(使用E表示边或弧的集合),边存在于无向图中原创 2020-08-04 13:50:02 · 148 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】递归
递归是如何工作的原理: 分而治之,为求一个大规模问题的问题,将原问题划分成若干子问题 (递) ,当子问题规模小到一定程序,可以直接求解,即存在递归终止的条件,称做递归出口,之后再将足够小的子问题合并形成原问题的解 (归) 。另外在嵌套执行函数的过程中,函数都会压到堆栈中去,返回函数的过程就是出栈的过程,可以返回控制权或者返回数值。使用条件: 1.问题可分解成遵循重复模式的多个过程2.最后一个下家满足终止条件,无需再往下交付,终结返回3.递归深度不能太深,防止堆栈溢出例题: 反转链表,例1->原创 2020-08-02 21:18:34 · 159 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】树
树相关概念1.结点的度(Degree):结点的子树个数2.树的度:树的所有结点中最大的度数3. 叶结点(Leaf):度为0的结点4. 父结点(Parent):有子树的结点,称其为子树的父结点5. 子结点(Child):若A结点是B结点的父结点,则称B结点是A结点的子结点6. 兄弟结点(Sibling):具有同一父结点的各结点彼此是兄弟结点。7. 路径和路径长度:从结点n1到nk的路径为一个结点序列n1 , n2 ,… , nk 。路径所包含边的个数为路径的长度。8. 祖先结点(Ancest原创 2020-07-27 22:53:47 · 181 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】顺序查找,二分查找
顺序查找typedef struct LNode *List;struct Lnode{ EleType Element[MAXSIZE]; int Length;};int SequentSearch(List L,EleType K){ int i; L->Element[0]=K; //define "guard" in front for(i=L->Length;L->Element[i]!=K;i--); //set i at last,tranverse原创 2020-07-11 20:54:57 · 83 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】栈,队列 C++
栈代码(数组存储)template <typename SElemtype>class Stack{private: SElemtype *e; int top; int size;public: Stack(int Max){ top = -1; size = Max; e = new SElemtype[size]; } bool Stack_GetTop(SElemtype& elem){ if(top == -1) return false;原创 2020-05-28 16:38:52 · 98 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】线性表(顺序表,单链表,双链表)C++
线性表顺序表定义代码单链表定义代码双向链表定义代码顺序表定义顺序表 :一个有序的数据元素的集合,对比数组我们会发现,它们同样是用一段物理地址连续的存储空间单元依次存储数据元素的线性结构,但数组是静态顺序表,在编译的时候,预分配了指定大小的内存单元,而顺序表可以通过初始化函数中的new或malloc分配动态的内存单元。代码template<typename Elemtype>class SqList{private: Elemtype* e; int size; int len原创 2020-05-27 09:29:15 · 124 阅读 · 0 评论 -
【算法与数据结构 の 相关概念】时间复杂度
时间复杂度分析基本操作,即只有常数项,认为其时间复杂度为O(1)顺序结构,时间复杂度按加法进行计算循环结构,时间复杂度按乘法进行计算,循环次数乘以循环体代码的复杂度(例:for,while)分支结构,时间复杂度取最大值(例:switch,if-else)判断一个算法的效率时,往往只需要关注操作数量加法项中的最高次项,其它次要项和常数项可以忽略在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复杂度常见时间复杂度O(1)<O(logn)<O(n)<(nlogn)转载 2020-05-21 15:23:45 · 241 阅读 · 0 评论