当前位置: 首页 > news >正文

数据结构和算法基础(二)

树和二叉树——树的基本概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

树和二叉树——树转二叉树

在这里插入图片描述

树和二叉树——查找二叉树(二叉排序树)

在这里插入图片描述

树和二叉树——构造霍夫曼树(最优)

在这里插入图片描述

树和二叉树——线索二叉树

在这里插入图片描述

树和二叉树——平衡二叉树

在这里插入图片描述

图——基本概念

1、有向图
2、无向图
3、完全图:在无向图中,若每对顶点之间都有一条边相连,则称该图为完全图。在有向图中,若每对顶点之间都有二条有向边相互连接,则称该图为完全图。
4、度,入度与出度
在这里插入图片描述

图——存储结构(邻接矩阵)

用一个n阶方阵R来存放图中各结点的关联信息,其矩阵元素Rij定义为:
在这里插入图片描述

图——存储结构(邻接表)

在这里插入图片描述

图——图的遍历

在这里插入图片描述

图——拓扑排序

我们把用有向边表示活动之间开始的先后关系。这种有向图称为用顶点表示活动网络,简称AOV网络。
在这里插入图片描述

图——最小生成树(普利姆算法)

在这里插入图片描述

图——最小生成树(克鲁斯卡尔算法)

在这里插入图片描述

查找

查找——在数据集合中寻找满足某种条件的数据元素的过程称为查找。

查找表(查找结构)——用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成。

关键字——数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该是唯一的。

查找长度—一在查找运算中,需要对比关键字的次数称为查找长度。平均查找长度(ASL,Average Search Length)—所有查找过程中进行关键字的比较次数的平均值。

在这里插入图片描述

查找——顺序查找

在这里插入图片描述

查找——折半查找

折半查找,又称“二分查找”,仅适用于有序的顺序表。
在这里插入图片描述
在这里插入图片描述

查找——分块查找

在这里插入图片描述

查找——哈希表(散列表)

散列表(Hash Table),又称哈希表。是一种数据结构,特点是:数据元素的关键字与其存储地址直接相关。
在这里插入图片描述

排序

在这里插入图片描述

排序——直接插入排序

算法思想:每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。
在这里插入图片描述

排序——希尔排序

算法思想:先将待排序表分割成若干形如L[i,i+d,i+2d….i+ kd]的“特殊”子表,对各个子表分别进行直接插入排序。缩小增量d,重复上述过程,直到d=1为止。

在这里插入图片描述

排序——冒泡排序

算法思想:从后往前(或从前往后)两两比较相邻元素的值,若为逆序(即A[i-1]>A[i]),则交换它们,直到序列比较完。称这样过程为“一趟”冒泡排序。
在这里插入图片描述

排序——快速排序

在这里插入图片描述

排序——简单选择排序

算法思想:每一趟在待排序元素中选取关键字最小的元素加入有序子序列。
在这里插入图片描述

排序——堆排序

在这里插入图片描述

在这里插入图片描述

排序——基数排序

在这里插入图片描述

排序——评价指标

在这里插入图片描述

相关文章:

  • 基于 Java 的浏览器——JxBrowser使用分享
  • Sass是什么?有哪些优缺点?
  • 【代码随想录算法训练营第37期 第十七天 | LeetCode110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和】
  • python数据类型之列表
  • 海外媒体发稿的关键步骤和投稿策略:如何撰写高质量的新闻稿?国外软文发布平台有哪些?
  • 如何同一局域网下ssh远程登录
  • 提取COCO 数据集的部分类
  • 移动云ECS主机:未来云计算的驱动力
  • 局部放电试验变频电源
  • 牛客NC391 快乐数【simple 模拟法 Java/Go/PHP】
  • el-table 合并单元格_以合并属性值相同行为例
  • ysoserial下载和使用
  • PHP开发安全:专家级代码审计策略与方法
  • 前端vue 动态加载ts文件,动态调用ts内的方法
  • 【算法】前缀和算法——和为k的子数组之和
  • [PHP内核探索]PHP中的哈希表
  • 【Amaple教程】5. 插件
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 2019.2.20 c++ 知识梳理
  • Create React App 使用
  • HomeBrew常规使用教程
  • jdbc就是这么简单
  • Joomla 2.x, 3.x useful code cheatsheet
  • Laravel5.4 Queues队列学习
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue学习系列(二)vue-cli
  • 浮动相关
  • 前嗅ForeSpider教程:创建模板
  • 事件委托的小应用
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 移动端唤起键盘时取消position:fixed定位
  • 用 Swift 编写面向协议的视图
  • 最简单的无缝轮播
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​渐进式Web应用PWA的未来
  • (3) cmake编译多个cpp文件
  • (void) (_x == _y)的作用
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)视频码率,帧率和分辨率的联系与区别
  • ***测试-HTTP方法
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Standard 的管理策略
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .net快速开发框架源码分享
  • .NET是什么
  • .Net下的签名与混淆
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题