BJFU|计算机导论(21下)第四章-数据结构与算法

本文档回顾大学计算机导论课程,深入解析数据结构(如数组、链表、ADT等)与基础算法(排序、查找、递归、迭代),为初学者提供专业视角和实用知识。

前言:

计算机导论是笔者大学期间第一门结课的专业课,也是在这门课上笔者取得了大学生活中第一次满分。笔者近日整理文件发现笔记数十页,不忍抛弃,因稍加整理后发布于此。

内容共八章,涵盖了计算机类专业学生的基础知识。对于行业初学者,可以提供一个专业的视角以便后续选择进一步发展方向;对于业外人士,也可做科普性质文章对待。需要注意的是,笔记并不等于确切的、已知的考点,请校友(尤其是同门师弟师妹们)理性对待此资料,认真听讲,认真复习。

后续章节将会逐步更新,请各位读者静候。

考点整理:

数据结构是相互之间存在一种或多种特定关系的数据元素的集合,而这些集合能够单独或作为一个整体被访问。一个数据结构代表了有特殊关系的数据的集合。数据结构是计算机存储、组织数据的方式。数据结构是研究算法的基础,分为逻辑结构和存储结构

数据元素之间的逻辑关系,也称为数据的逻辑结构,它可以看作是从具体问题抽象出来的数学模型。它分为线性结构和非线性结构两大类。

数据的物理结构又称为存储结构,是数据在计算机中的表示(映像)和存储。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据的处理效率。

数组是元素的顺序集合,通常这些元素具有相同数据类型。数组属于物理结构。索引表示元素在数组中顺序号,从数组开始处计数,通过索引数组元素便有了独立地址。二维数组两种存储方式:行主序和列主序。数组可以进行:查找、插入、删除、检索和遍历。

链表是一个数据的集合,其中每个元素(节点)包含下一个元素的地址;即每个元素包含两部分:数据和链。以空指针标记链表的结束。链表可以进行:查找、插入、删除、检索和遍历。

数组和链表都能表示内存中的一组数据项,唯一的区别在于数据项连接在一起的方式数组利用索引,支持随机访问;内存空间较为固定,不能灵活扩大或缩小;插入和删除效率很低,适合进行大量查找和检索。链表利用指针依次连接,不支持随机访问;内存空间动态,可灵活增加或删除节点;插入和删除效率很高,但查找和遍历比数组慢。

抽象数据类型ADT是与对该数据类型有意义的封装操作在一起的数据类型。是一种处于更高抽象层的数据类型,代表逻辑上的结构概念。包括:数据的定义、操作的定义、封装数据和操作

栈(后进先出)是一种限制线性列表,它添加和删除元素只能在一段实现,称为栈顶。栈的基本操作:建栈、入栈、出栈、空。

队列(先进先出)是一种限制线性列表,它只能在尾部一端插入数据,头部一端删除。队列的基本操作:建队列、入列、出列、空。

广义线性表是插入和删除可以在任何地方进行的表。特点:元素具有相同类型、顺序排列、按一定规则排序。广义线性表基本操作:建表、插入、删除、检索、遍历和空。

树包括一组有限的元素称为节点,同时包括一组有限的有向线段用来连接节点,称为弧。树的最大层次称为树的深度。

图:由一组顶点和顶点之间的连线构成。

算法:一组明确步骤的有序集合,它产生结果并在有限的时间内终止。一种非正式的定义:一种逐步解决问题或完成任务的方法。要求是定义良好、明确步骤、产生结果、在有限的时间内终止。其特征是确定性、可行性、有穷性、拥有足够的情报。表示方法有:自然语言、流程图、伪代码等。

算法的三种结构:顺序、选择、循环

伪代码:在编写算法时,为了更好地表示算法本身,不在一些小的细节上纠缠,而采用类似于自然语言表示算法的算法表示方法。

在结构化编程时使用模块化或分单元的办法来构成程序,这些被分成的小单元称之为子算法。优点:使程序更容易理解;可以在主算法中不同的地方调用,无需重写。

常见基本算法:求和、乘积、最大/最小、排序、查找。

排序(sort):根据数据的值对它们进行排列。

查找(Search):是一种在(有序的/无序的)数据元素中,确定目标所在位置的算法。

 

 

递归:算法中包含了对算法自身调用的算法

迭代:重复反馈过程的活动,目的通常是为了逼近所需目标或结果。如果算法定义不涉及算法本身,则算法迭代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CresCent_Charles

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值