数据结构与算法(总结)_黑小板的博客-程序员宝宝

技术标签: 算法  数据结构与算法  数据结构  

总结
一、数据结构(Data Structure) 是数据的组织结构,用来组织、存储数据。算法(Algorithm) 就是解决问题的方法或者过程。
二、数据结构分为逻辑结构和物理结构。逻辑结构分为集合结构、线性结构、树形结构、图形结构;物理结构分为顺序存储结构、链式存储结构。
三、算法是一系列运算步骤。算法有5个基本特性,输入、输出、有穷性、确定性、可行性;算法最求5个目标,正确性、可读性、健壮性、运行时间少、内存空间小。
四、「数组」 是实现线性表的顺序结构存储的基础;「链表」 是实现线性表的链式存储结构的基础; 「栈」是一种后进先出的线性表;「队列」是一种先进先出的线性表;「哈希表」是根据关键码值直接进行访问的数据结构;「字符串」是由零个或多个字符组成的有限序列;「树」是由节点与节点之间的关系组成的有限集合;「图」是由顶点的非空有限集合与边的集合构成的结构。
五、「枚举算法」也称为穷举算法,是按照问题本身的性质一一列举出该问题所有可能的解;「递归」指的是一种通过重复将原问题分解为同类的子问题而解决的方法;「分治」就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并;「回溯」是一种选优搜索方法,按选优条件进行深度优先搜索,以达到目标;「贪心」是一种在每次决策时采用当前状态下最优或最好的策略,从而希望导致结果是最好或最优的算法;「位运算」是针对二进制的运算,对每一个位进行布尔运算操作;「动态规划」与分治法相似,都是通过组合子问题的解来求解原问题答案,将问题划分为互不相交的子问题,递归的求解子问题,最后合并子问题的答案。

1. 数据结构

数据结构分为逻辑结构和物理结构。逻辑结构分为集合结构、线性结构、树形结构、图形结构;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
物理结构分为顺序存储结构、链式存储结构。
在这里插入图片描述
在这里插入图片描述

1.1 数组

「数组」 是实现线性表的顺序结构存储的基础。

1.2 链表

「链表」 是实现线性表的链式存储结构的基础。

1.3 栈

「栈」是一种后进先出的线性表。

1.4 队列

「队列」是一种先进先出的线性表。

1.5 哈希表

「哈希表」是根据关键码值直接进行访问的数据结构。

1.6 字符串

「字符串」是由零个或多个字符组成的有限序列。

1.7 树

「树」是由节点与节点之间的关系组成的有限集合。

1.8 图

「图」是由顶点的非空有限集合与边的集合构成的结构。

2. 算法

算法是一系列运算步骤。算法有5个基本特性,输入、输出、有穷性、确定性、可行性;算法最求5个目标,正确性、可读性、健壮性、运行时间少、内存空间小。

1.1 枚举算法

「枚举算法」也称为穷举算法,是按照问题本身的性质一一列举出该问题所有可能的解。

1.2 递归算法

「递归」指的是一种通过重复将原问题分解为同类的子问题而解决的方法。

1.3 分治算法

「分治」就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。

1.4 回溯算法

「回溯」是一种选优搜索方法,按选优条件进行深度优先搜索,以达到目标。

1.5 贪心算法

「贪心」是一种在每次决策时采用当前状态下最优或最好的策略,从而希望导致结果是最好或最优的算法。

1.6 位运算

「位运算」是针对二进制的运算,对每一个位进行布尔运算操作。

1.7 动态规划

「动态规划」与分治法相似,都是通过组合子问题的解来求解原问题答案,将问题划分为互不相交的子问题,递归的求解子问题,最后合并子问题的答案。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45397053/article/details/124369587

智能推荐

“Win10安装ArcGIS10.2 for Desktop需要Microsoft.net framework 3.5 sp1或等效环境” 的解决方案_arcgis10.2需要等效环境是什么意思_gujiamin-0-1的博客-程序员宝宝

Google得到如下solution:“I had the same issue on Windows10. found some articles that said to place a copy of Windows10 on my local drive and then use commond line to restall .NET3.5.Here is the command I...

java iterator 源码_Java 集合系列(四)—— ListIterator 源码分析_隔壁一枝花的博客-程序员宝宝

以脑图的形式来展示Java集合知识,让零碎知识点形成体系Iterator 对比Iterator(迭代器)是一种设计模式,是一个对象,用于遍历集合中的所有元素。Iterator 包含四个方法,分别是:next()、hasNext()、remove()、forEachRemaining(Consumer super E> action)Collection 接口继承 java.lang.Iter...

h5视频播放video的一些常见问题_喵大嗷的博客-程序员宝宝

<video> 标签是 HTML 5 的新标签。视频预览图,在用户点击播放按钮前显示的图像video标签的poster属性就是解决这一问题的<video controls poster="/images/mypic.gif"> <source src="movie.mp4" type="video/mp4"></vide

TCP Client & Server 基于 python(一)_酱油瓶被人注册了的博客-程序员宝宝

题目:如何创建套接字,将其绑定到特定的地址和端口,以及发送和接收HTTP数据包。您还将学习一些HTTP首部格式的基础知识。您将开发一个处理一个HTTP请求的Web服务器。您的Web服务器应该接受并解析HTTP请求,然后从服务器的文件系统获取所请求的文件,创建一个由响应文件组成的HTTP响应消息,前面是首部行,然后将响应直接发送给客户端。如果请求的文件不存在于服务器中,则服务器应该向客户端发送“40...

PID整定之临界比例度法_临界比例度法整定pid参数_朽木白露的博客-程序员宝宝

概述在闭环的控制系统中,激励为阶跃信号,将调节器置于纯比例作用下,从小到大逐渐改变调节器比例度的大小,直到出现等幅振荡的过渡过程。此时的比例度称为临界比例度δ_r(δ=1/K_p )。相邻两个波峰间的距离称为临界振荡周期T_r,比例增益K_Pr。图一:pid计算公式out_val = kp*(err + dT_ms/Ti*err_i + Td/dT_ms*(err - last_err)...

python 完全面向对象_python 面向对象_weixin_39653442的博客-程序员宝宝

1:面向对象基础1:面向对象的基本概念1:面向过程,(怎么做)把完成某一个需求的 所有步骤 从头到尾 逐步实现根据开发需求,将某些 功能独立的代码 封装 成一个函数最后完成的代码,就顺序的调用 不同的函数特点:注重 步骤与过程开发复杂的项目,没有固定的套路,开发难度很大2:面向对象(谁来做)相比较函数,面向对象是更大封装,根据职责 再一个对象中封装多个方法1:要完成某一需求前,首先确定一下职责...

随便推点

python装饰器教程_python中main函数的用法需要装饰器吗_Johnson0722的博客-程序员宝宝

Functions下面是一个十分简单的函数,给定输入,返回对应的值def add_one(number): return number + 1>>> add_one(2)3First-class objects在python中,函数也可以当成是一个对象,那就意味着函数可以当作参数进行传递,就像整型,字符型,列表类型的对象一样,参考下面的例子:def

python(抽象类)_weixin_30301183的博客-程序员宝宝

#必须导入抽象类模块import abcaclass Dog(metaclass = abc.ABCMeta): #制定类的元素  age =10  sex = 'man'  #方法  #对象抽象方法  @abc.abstractmethod  def swinmming(self):    pass  #静态抽象方法  @abc.abstractsta...

java 三维坐标根据起点终点导航计算_RiveGauche的博客-程序员宝宝

需要用到的类package com.jwuwb.library.service.nav.core;import java.util.ArrayList;import java.util.Arrays;public class GisPoint { //坐标 private Vector3 coordinate; //父节点 private ...

向云计算要技术红利,华为云定义云原生2.0时代_阿川2015的博客-程序员宝宝

进入2020年以来,以容器、Kubernetes和微服务为代表的云原生技术,开始颠覆业界对从2006年开始的云计算技术和产业的认知。在2019年的时候,业界还对云原生技术处于热议阶段,主流厂商纷纷推出云原生产品和平台,但当时业界以及用户都没有预料到云原生技术将加速进入规模化应用阶段。到了2020年底,云原生将颠覆云计算的趋势已经十分明显。2020年11月30日,华为云联合Forrester发布了《拥抱云原生优先战略——构建以“应用”为中心的企业现代化IT基础设施》白皮书(以下简称:白皮书)。该白皮书..

CTF中pwn的入门指南_ctfpwn入门_影子019的博客-程序员宝宝

CTF中pwn的入门指南pwn简介:CTF中的pwn指的是通过通过程序本身的漏洞,编写利用脚本破解程序拿到主机的权限,这就需要对程序进行分析,了解操作系统的特性和相关漏洞,是是一个难度比较大的分支。  接下来介绍相关的学习思路(自己总结的,当作参考)0x01 基础知识准备  pwn相对于web,更需要专业的技能和知识,最主要的是要学会如何分析程序,这就需要有足够的准备c语言汇编语言...

AndroidStudio构建系统用户指南_Android成长笔记的博客-程序员宝宝

看了很多资料,还是有点不甚理解,学习本身就是一个混沌的到模糊再到清晰的过程。开始学的时候,找到一点零碎的内容,似懂非懂地看着,感觉可以理解,但是不知道如何应用,找到官网的资料学习,稍微系统了,但是总感觉很吃力,或许是因为英文文档的缘故,和自己内心一丝丝的急迫感,难以静下心来仔细斟酌。终于,系统不系统地一些资料后,彻底晕乎了。静下心来,稍微整理下这写内容,发现并没有那么多,关键还是自己心态和学习方式

推荐文章

热门文章

相关标签