首页 > 编程知识 正文

我的一切都是国家给的,投入到无限的为人民服务之中去

时间:2023-05-03 21:59:56 阅读:31533 作者:3309

前言背景:算法与数据结构作为技术开发者最基本的技术修养是日常开发频率非常高的本文目的:花尽可能短的时间,快速学习常见的数据结构知识及算法适用读者:所有技术开发者的正文

常见的、经常试验的3358www.Sina.com/每种数据结构给出http://www.Sina.com /各知识点的考题详细分析试题知识考点、多种思路分析到手写编码的全过程进行编目

基础知识1 .数据结构是什么? 储备知识:数据的定义具体类型的核心内容1.1储备知识:什么是数据

1.2定义相互具有一个或多个关系的数据元素的集合。

1.3具体类型的数据结构具备的类型有逻辑结构、物理结构两种。

1.4核心学习内容主要包括

排序路线表:数组、链表、堆栈和队列树:包含特殊树(如二叉树和红黑树)的字符串:这些数据结构将在后面的章节中详细介绍,如字符串查找图所示。

2 .算法是什么? 定义特征算法设计需要在一般算法2.1中定义解决特定问题的求解步骤(在计算机中多个指令=表示为多个步骤操作)。

2.2可以没有特征输入,但一定有输出步长的有限确定性。 每一步都有确定意义,不出现二义二义三算法设计要求算法的设计必须考虑以下性能要求:

可行性(即,该算法是否具有可解决数据结构知识问题的健壮性),即该算法是否可解决http://www.Sina问题,即输入是否为0 是否可以容纳),即该算法在http://ww.Sina这里使用指标: 3358www.Sina.com/来测量空间效率。 也就是说,运行该算法所需的内存空间量。 以下是使用指标:常见 经典的算法题测量时间复杂度、空间复杂度的方法。

一般数据结构及其算法应用各类数据结构都有相应的算法应用场景,具体如下:

具体说明在下一章,我做以下事情。

详细说明各算法应用场景对应的经典算法问题: 3358www.Sina.com/目的: 3358www.Sina.com/排序1 .概述

具体请看文章:算法总结:这是全面详细排序算法的学习指南

2 .算法应用的最简单排序算法:气泡排序数据量大时最应该选择的算法:简单选择排序却不知道的排序算法:直接插入排序复杂度最高的排序算法:水蛭排序最少消耗的排序算法:堆栈排序稳定性最高的排序算法:合并排序搜索1 .概述

2 .根据算法适用的检索要求场景的不同,检索类型也不同,最终采用的检索方式(检索算法)也不同。 具体如下

具体请看报道。 Carson学习数据结构。 字符串详细信息-动态搜索、静态搜索、散列搜索

路线表路线表主要包括数组、链表、堆栈和队列

1 .数组1.1概要用于存储线性表数据元素的方法=切实以下。 开始位置、排列长度(最大存储容量)、线性表长度(当前长度),具体如下。

概念说明数组长度保存线性表的空间长度(固定不变)线性表长度保存线性表数据要素的长度(动态变化)地址保存单元的编号数组下标第I个要素=数组下标i-1的位置请具体参阅文章。 Carson学习数据结构)线性表-数组

1.2算法的应用典型应用1 :查找特定次数的数字

在数组中只出现一次的两个数字数组中,出现次数超过一半的数字在排序数组中出现的次数:二分法数组中只出现一次的数字,其他出现三次的典型应用2 :寻找满足特定条件的数字

在中数字和下标相等的元素数组中最小的k个排序数组中,0~n-1中缺少的数字将打印为1到最大的n位。 数的问题数组中重复的数字(不可修改的数组)典型应用3 )检索不同类型的数组

查找二维数组中搜索旋转数组最小数量的典型应用4 :数组中元素的数组组合

数组所有滑动窗口的最大值将连续子数组的最大值和数组的所有数量排列为最小数量。 数问题数组逆序对调整数组顺序,使奇数位于偶数之前2 .链表2.1概述

具体来说,Carson会带你去学习数据结构。 链表

2.2算法应用典型应用1 :查找链表的特定节点

链表倒数第k个节点/中间节点链表中的条目节点两个链表第一个公共节点的典型应用2 :复制删除链表

删除链表节点(重复/不重复)复制复杂链表典型应用3 )链表翻转、合并打印

反转链表,从末尾打印链表,合并两个排序的链表3 .堆栈和队列3.1

简介

具体请看文章:Carson带你学数据结构:图文解析特殊的线性表 - 栈 & 队列

3.2 算法应用

典型应用1:互相转换

2个栈实现队列2个队列实现栈

典型应用2:求最大、最小值

获取栈的最小值获取队列的最大值 树 1. 简介

2. 存储结构

包括:双亲表示法、孩子表示法、zjdsy表示法,具体介绍如下图

3. 树的类型

具体请看文章:Carson带你学数据结构:手把手教你学习-树

主要应用是二叉树,所以下面主要介绍二叉树算法的应用

4. 算法应用

典型应用1:基础树遍历算法

前序遍历前中序遍历后序遍历层序遍历

典型应用2:遍历应用

根据前序 & 中序重建二叉树从上到下打印二叉树:不分行、分行 & 之字形二叉树的深度序列化二叉树判断是不是某二叉搜索树的后序、前序遍历结果

典型应用3:二叉树结构判断

判断B是不是A的子树结构判断 二叉树是否对称判断二叉树是否相等

典型应用4:二叉树查找

树中两个节点的最低公共祖先二叉搜索树最接近值查找二叉树中和为某一值的路径二叉搜索树的第k大节点二叉树 中序遍历下一个节点

典型应用5:二叉树类型变式

二叉搜索树与双向链表输出二叉树的镜像平衡二叉树
串 1. 简介

2. 存储结构介绍

包括:顺序存储结构 & 链式存储结构

具体请看文章:Carson带你学数据结构:这是一份全面 & 详细的”串“讲解指南

3. 算法应用

典型应用1:字符串转换

把数字翻译成字符串
把字符串转换成整数

典型应用2:字符查找

第一个只出现一次的字符、字符流中第1个只出现1次的字符、删除1个字符串中的重复字符、删除2个字符串中的重复字符、变位数
最长不含重复字符的子字符串
替换 字符串中的空格
字符串的排列

典型应用3:字符串的排列组合

字符串的排列
字符串的组合 / 子集

典型应用4:字符串翻转

翻转字符串 之 翻转单词顺序
翻转字符串 之 左旋转字符串

典型应用5:字符串匹配判断

正则表达式匹配
判断1个字符串是否表示数值
图 1.1 简介

具体请看文章:Carson带你学数据结构:手把手带你了解 ”图“ 所有知识!(含DFS、BFS)

1.2 算法应用

典型应用1:基础遍历

广度遍历(DFS)
深度遍历(BFS)

典型应用2:最小生成树

欢喜的唇膏算法(Prim)
克鲁斯卡尔算法(Kruskal)

典型应用3:最短路径

迪杰斯特拉算法(Dijkstra)
弗洛伊德算法(Floyd)

至此,关于常用的数据结构及典型算法解析已经讲解完毕。

总结

本文全面解析了数据结构及其对应常见算法,核心内容都已经记录在Github上:
https://github.com/Carson-Ho/AlgorithmLearning,感谢各位关注点赞。

Carson带你学数据结构系列文章:
Carson带你学数据:线性表-数组、链表
Carson带你学数据:特殊的线性表-栈、队列
Carson带你学数据:串
Carson带你学数据:树
Carson带你学数据:二叉树
Carson带你学数据:图
Carson带你学数据:查找 欢迎关注Carson_Ho的CSDN博客 !

博客链接:https://carsonho.blog.csdn.net/

请点赞!因为你的鼓励是我写作的最大动力!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。