数据结构和算法概述

什么是数据结构?

官方解释:

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。

大白话:

数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据

数据结构分类

传统上,我们可以把数据结构分为逻辑结构和物理结构两大类。

逻辑结构分类:

逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类,也是 我们后面课题中需要关注和讨论的问题。

a.集合结构:集合结构中数据元素除了属于同一个集合外,他们之间没有任何其他的关系。

b.线性结构:线性结构中的数据元素之间存在一对一的关系

c.树形结构:树形结构中的数据元素之间存在一对多的层次关系

d.图形结构:图形结构的数据元素是多对多的关系

物理结构分类:

逻辑结构在计算机中真正的表示方式(又称为映像)称为物理结构,也可以叫做存储结构。常见的物理结构有顺序 存储结构、链式存储结构。

顺序存储结构:

把数据元素放到地址连续的存储单元里面,其数据间的逻辑关系和物理关系是一致的 ,比如我们常用的数组就是 顺序存储结构。

顺序存储结构存在一定的弊端,就像生活中排时也会有人插队也可能有人有特殊情况突然离开,这时候整个结构都 处于变化中,此时就需要链式存储结构。

链式存储结构:

是把数据元素存放在任意的存储单元里面,这组存储单元可以是连续的也可以是不连续的。此时,数据元素之间并 不能反映元素间的逻辑关系,因此在链式存储结构中引进了一个指针存放数据元素的地址,这样通过地址就可以找 到相关联数据元素的位置

什么是算法?

官方解释:

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法解决问题的策略 机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

大白话 :

算法就是解决问题的方式,就像中学时代的数学一样,其实数学领域的算法和计算机领域的算法有很多相通之处。

我们后面要刷的很多题目,都不好说是数学问题还是算法问题。

我们所涉及的算法,是计算机科学领域的算法,它的本质是一系列程序指令,用于解决特定的运算和逻辑问题

算法有简单的,也有复杂的,简单的如1+1=2

也有复杂的,例如

大千世界任务问题,一旦向使用计算机来解决,那必然最终要变成一行行可以执行的代码,解决这个问题的过程就是算法。

算法与数据结构又是啥关系

算法是解决问题的思想,数据结构是具体的实现载体,这就像战术与武器的关系。

任何算法,如果想做成计算机可以执行的程序,那必然要借助数据结构将算法进行细化和步骤化,这就是程序开发的设计方案。

在算法考察中,有相当一部分就是数据结构本身的增删改查和各种各样的变换。而在此基础之上,再考虑一些比较复杂的实际问题


这期就到这里 , 下期见!

相关推荐
马剑威(威哥爱编程)2 分钟前
除了递归算法,要如何优化实现文件搜索功能
java·开发语言·算法·递归算法·威哥爱编程·memoization
算法萌新——124 分钟前
洛谷P2240——贪心算法
算法·贪心算法
湖北二师的咸鱼25 分钟前
专题:二叉树递归遍历
算法·深度优先
重生之我要进大厂1 小时前
LeetCode 876
java·开发语言·数据结构·算法·leetcode
Happy鱿鱼1 小时前
C语言-数据结构 有向图拓扑排序TopologicalSort(邻接表存储)
c语言·开发语言·数据结构
KBDYD10101 小时前
C语言--结构体变量和数组的定义、初始化、赋值
c语言·开发语言·数据结构·算法
Crossoads2 小时前
【数据结构】排序算法---桶排序
c语言·开发语言·数据结构·算法·排序算法
自身就是太阳2 小时前
2024蓝桥杯省B好题分析
算法·职场和发展·蓝桥杯
孙小二写代码2 小时前
[leetcode刷题]面试经典150题之1合并两个有序数组(简单)
算法·leetcode·面试
QXH2000002 小时前
数据结构—单链表
c语言·开发语言·数据结构