软考(软件设计师知识点)--数据结构与算法基础

1.数组:
在这里插入图片描述
2.稀疏矩阵:一个矩阵中所记录的元素,大量元素都是零
在这里插入图片描述
做题时可以用代入法
3.数据结构的定义:
数据结构是计算机存储和组织数据的方式
数据逻辑结构:线性结构、非线性结构(树形结构(没有环路)、图)
4.线性表的定义:
存储方式:顺序表(空间连续)、链表(单链表、循环链表、双向链表)(既存数据又存指针)

5.顺序存储与链式存储对比:
在这里插入图片描述
6.栈与队列
队列:先进先出
栈:先进后出
循环队列:队头连接队尾
队空的条件:头和尾相等,指向同一个空间head=tail
队满的条件:(tail+1)%size=head
元素按照ABC的顺序入栈,出栈的序列可能:CBA/BAC /ABC
7.广义表:由n个表元素所组成的有限的序列,线性表的推广
广义表的长度指表元素的的个数,深度为括号的嵌套层数
基本操作:head取表头(最外层的第一个元素)tail取表尾(除表头元素的其他元素)
在这里插入图片描述
8.树与二叉树:
1.节点的度:一个节点拥有的孩子节点数
2.树的度:所有节点度数最高的就是树的度
3.叶子节点:没有孩子节点的
4.分支节点:有分支的
5.内部节点:既不是页子节点,也不是根节点,夹在中间的
6.父节点、子节点:相对而言
7.兄弟节点:同一父亲底下,平级的
8.层次:
在这里插入图片描述
9.满二叉树和完全二叉树
满二叉树:整棵树没有缺失的节点
完全二叉树:除了最底下一层,上面层次都是满的,下面一层从左到右排
在这里插入图片描述

10.二叉树遍历:
1.层次遍历:每层节点从左到右访问
2.前序遍历:先访问跟节点,再访问左子树和右子树节点
3.中序遍历:先访问左子树,再访问根节点,再访问右子树
4.后序遍历:先访问左子树,再访问右子树,最后根节点
11.反向构造二叉树:
12.树转二叉树:
原则:树中的孩子节点都会成为二叉树的左子树节点,兄弟节点,都会成为右子树节点。
13.查找二叉树:(排序二叉树) 左孩子小于根,右孩子大于根
优点:提高效率
14.最优二叉树(哈弗曼树):节省存储空间和带宽
基本概念:
树的路径长度:各个路径累加起来
权:某个叶子节点的数值出现的频度
带权的路径长度:路径长度*权值
树的带权的路径长度(树的代价):所有的带权路径长度累加起来
达到效果:让一棵树带权路径长度是最短的
15.线索二叉树:
在这里插入图片描述
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。若进行排序,按照中序遍历排序。
16.平衡二叉树:
定义:任意节点的左右子树的深度相差不超过1(左-右)
每节点的平衡度只能为-1,0,1
17.图的基本概念:
在这里插入图片描述
邻接矩阵:
在这里插入图片描述
邻接表:
在这里插入图片描述
18.图的遍历:
在这里插入图片描述
19.拓扑排序
用序列表示哪些事件可以先执行,哪些后执行
在这里插入图片描述
20.图的最小生成树:
形成环路的是图,树没有环路。
节点数=边就是图
图中的权值相加是最小的,就是最小生成树
相应算法:
1.普里姆算法
从一个点开始,最近的点连接
树的总长度是图的最短的情况,不能形成环
2.克鲁斯卡尔算法:
从最短的边开始选起
21.算法的特点:
1.有穷性:步骤数量有限
2.确定性
3.输入(>=0)
4.输出(>=1)
5.有效性:步骤得到有效的结果
22.算法的复杂度:
时间复杂度:算法执行下来要用多少时间。
空间复杂度:算法执行过程中临时占用的存储空间大小
常数级的时间复杂度:O(1)
循环体执行N次:O(n)
多重算法:取最高的
对树的处理,经常用O(log2n)(n代表节点的数量)
在这里插入图片描述
23.查找:
1.顺序查找:
顺序查找最好的次数是一次,最差的情况是n次,平均查找(n+1)/2
时间复杂度是O(n)
在这里插入图片描述
2.二分查找法(折半查找):
在这里插入图片描述
前提:序列的关键字是有序排列(从小到大,或从大到小)
带小数的中间数要取整
二分查找法查找成功是比较的次数最多是(log2n)+1
二分查找的时间复杂度是O(log2n)
24.散列表查找:
在这里插入图片描述
散列表冲突的解决方法:
线性探测法:顺次放在后面空间
伪随机数法:
25.排序:
概念:稳定和不稳定排序、 内排序和外排序
排序方法:
插入类排序:直接插入排序、希尔排序
交换类排序:冒泡排序、快速排序
选择类排序:简单选择排序、堆排序
归并排序
基数排序
1.直接插入排序:(速度慢,效率低)
在这里插入图片描述
2.希尔排序:数据越多,效率越高。
在这里插入图片描述
3.直接选择排序:
在这里插入图片描述
4.堆排序:
在这里插入图片描述
所有的孩子节点都小于根节点,属于大顶堆,所有的孩子节点都大于根节点,属于小顶堆。
先将序列建立成堆,依次取出堆顶元素,就是有序序列。

在这里插入图片描述
在这里插入图片描述
5.冒泡排序
在这里插入图片描述
6.快速排序:分治法
在这里插入图片描述
7.归并排序法:
在这里插入图片描述
8.基数排序:
将数字按位数拆开进行排序
总结:
在这里插入图片描述

更多软考资讯,请关注我的个人公众号 “软考管家”
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MichaelYZ111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值