数据结构与算法(总结)
总结:
一、数据结构(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 动态规划
「动态规划」与分治法相似,都是通过组合子问题的解来求解原问题答案,将问题划分为互不相交的子问题,递归的求解子问题,最后合并子问题的答案。
数据结构与算法(总结)相关推荐
- Python3-Cookbook总结 - 第一章:数据结构和算法
第一章:数据结构和算法 Python 提供了大量的内置数据结构,包括列表,集合以及字典.大多数情况下使用这些数据结构是很简单的. 但是,我们也会经常碰到到诸如查询,排序和过滤等等这些普遍存在的问题. ...
- 推荐一个关于.NET平台数据结构和算法的好项目
http://www.codeplex.com/NGenerics 这是一个类库,它提供了标准的.NET框架没有实现的通用的数据结构和算法.值得大家研究. 转载于:https://www.cnblog ...
- 数据结构和算法:(3)3.1线性表的顺序存储结构
-----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...
- weiss数据结构和算法书的使用说明
<数据结构与算法分析 C语言描述>Mark Allen Weiss著,冯舜玺译,机械工业出版社.Weiss教授的经典教材三部曲之一,其中的C语言描述版本,也就是本书,被称为20世纪最重要的 ...
- 数据结构和算法 -- 学习导图
数据结构和算法 是作为程序员写出高效代码的基础,为了今后的两年在高效代码之路上持续精进,将按照此学习导图进行 算法和数据结构的刻意练习,同时也希望为同样有高效代码追求的伙伴们提供一条学习路径,共同进步 ...
- Java数据结构与算法(第四章栈和队列)
2019独角兽企业重金招聘Python工程师标准>>> 本章涉及的三种数据存储类型:栈.队列和优先级队列. 不同类型的结构 程序员的工具 数组是已经介绍过的数据存储结构,和其他结构( ...
- python数据结构与算法总结
python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: <数据结构和算法对python意味着什么?> <顺序表数据结构在python中的应用> ...
- 学习JavaScript数据结构与算法(一):栈与队列
本系列的第一篇文章: 学习JavaScript数据结构与算法(一),栈与队列 第二篇文章:学习JavaScript数据结构与算法(二):链表 第三篇文章:学习JavaScript数据结构与算法(三): ...
- MySQL索引背后的数据结构及算法原理【转】
http://blog.codinglabs.org/articles/theory-of-mysql-index.html MySQL索引背后的数据结构及算法原理[转] 摘要 本文以MySQL数据库 ...
- 数据结构与算法:22 精选练习50
精选练习50 马上就要期末考试或者考研了.为了大家复习的方便,我精选了有关数据结构与算法的50道选择题,大家可以抽空练习一下.公众号后台回复"答案"可以获取该50道题目的答案. 0 ...
最新文章
- 【django轻量级框架】在线视频教育系统设计与实现
- 关于mysql的一些问题_关于mysql的一些细节问题
- Webservice入门教程_教程目录以及地址
- MONO源码编译笔记-版本:unity-2018.4-mbe
- 【Let‘s Go】Go语言入门篇
- python随机生成10个整数列表_python_随机产生10个整数后找出最小值,最大值。
- Cloud for Customer客户主数据重复检查duplicate check的前台实现
- 三年半Java后端面试经历
- 前端学习(2850):简单秒杀系统学习之绝对定位
- 实例16:python
- 没有基础的想转行学习Python怎么学
- springboot文件上传下载实战 —— 登录功能、展示所有文件
- Mysql update 语句(chm文档)
- java millis_Java Duration.getMillis方法代码示例
- java基础知识精讲视频教程百度云盘分享!
- shell教你如何批量解压缩——unzip命令
- 可以在电脑上在线录制视频GIF的软件,不需要下载安装
- 华为HCIE RS笔记-21OSPF基本知识
- 华为7c手机怎么恢复出厂设置_华为荣耀畅玩7A/7C解锁教程_荣耀畅玩7A/7C用官方解锁码解锁方法...
- 计算机安全知识有哪些方面,信息安全的基本属性包括哪些方面?