前言:
计算机导论是笔者大学期间第一门结课的专业课,也是在这门课上笔者取得了大学生活中第一次满分。笔者近日整理文件发现笔记数十页,不忍抛弃,因稍加整理后发布于此。
内容共八章,涵盖了计算机类专业学生的基础知识。对于行业初学者,可以提供一个专业的视角以便后续选择进一步发展方向;对于业外人士,也可做科普性质文章对待。需要注意的是,笔记并不等于确切的、已知的考点,请校友(尤其是同门师弟师妹们)理性对待此资料,认真听讲,认真复习。
后续章节将会逐步更新,请各位读者静候。
考点整理:
数据结构是相互之间存在一种或多种特定关系的数据元素的集合,而这些集合能够单独或作为一个整体被访问。一个数据结构代表了有特殊关系的数据的集合。数据结构是计算机存储、组织数据的方式。数据结构是研究算法的基础,分为逻辑结构和存储结构。
数据元素之间的逻辑关系,也称为数据的逻辑结构,它可以看作是从具体问题抽象出来的数学模型。它分为线性结构和非线性结构两大类。
数据的物理结构又称为存储结构,是数据在计算机中的表示(映像)和存储。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据的处理效率。
数组是元素的顺序集合,通常这些元素具有相同数据类型。数组属于物理结构。索引表示元素在数组中顺序号,从数组开始处计数,通过索引数组元素便有了独立地址。二维数组两种存储方式:行主序和列主序。数组可以进行:查找、插入、删除、检索和遍历。
链表是一个数据的集合,其中每个元素(节点)包含下一个元素的地址;即每个元素包含两部分:数据和链。以空指针标记链表的结束。链表可以进行:查找、插入、删除、检索和遍历。
数组和链表都能表示内存中的一组数据项,唯一的区别在于数据项连接在一起的方式。数组利用索引,支持随机访问;内存空间较为固定,不能灵活扩大或缩小;插入和删除效率很低,适合进行大量查找和检索。链表利用指针依次连接,不支持随机访问;内存空间动态,可灵活增加或删除节点;插入和删除效率很高,但查找和遍历比数组慢。
抽象数据类型ADT是与对该数据类型有意义的封装操作在一起的数据类型。是一种处于更高抽象层的数据类型,代表逻辑上的结构概念。包括:数据的定义、操作的定义、封装数据和操作。
栈(后进先出)是一种限制线性列表,它添加和删除元素只能在一段实现,称为栈顶。栈的基本操作:建栈、入栈、出栈、空。
队列(先进先出)是一种限制线性列表,它只能在尾部一端插入数据,头部一端删除。队列的基本操作:建队列、入列、出列、空。
广义线性表是插入和删除可以在任何地方进行的表。特点:元素具有相同类型、顺序排列、按一定规则排序。广义线性表基本操作:建表、插入、删除、检索、遍历和空。
树包括一组有限的元素称为节点,同时包括一组有限的有向线段用来连接节点,称为弧。树的最大层次称为树的深度。
图:由一组顶点和顶点之间的连线构成。
算法:一组明确步骤的有序集合,它产生结果并在有限的时间内终止。一种非正式的定义:一种逐步解决问题或完成任务的方法。要求是定义良好、明确步骤、产生结果、在有限的时间内终止。其特征是确定性、可行性、有穷性、拥有足够的情报。表示方法有:自然语言、流程图、伪代码等。
算法的三种结构:顺序、选择、循环。
伪代码:在编写算法时,为了更好地表示算法本身,不在一些小的细节上纠缠,而采用类似于自然语言表示算法的算法表示方法。


在结构化编程时使用模块化或分单元的办法来构成程序,这些被分成的小单元称之为子算法。优点:使程序更容易理解;可以在主算法中不同的地方调用,无需重写。
常见基本算法:求和、乘积、最大/最小、排序、查找。
排序(sort):根据数据的值对它们进行排列。
查找(Search):是一种在(有序的/无序的)数据元素中,确定目标所在位置的算法。





递归:算法中包含了对算法自身调用的算法。
迭代:重复反馈过程的活动,目的通常是为了逼近所需目标或结果。如果算法定义不涉及算法本身,则算法迭代。
本文档回顾大学计算机导论课程,深入解析数据结构(如数组、链表、ADT等)与基础算法(排序、查找、递归、迭代),为初学者提供专业视角和实用知识。
479

被折叠的 条评论
为什么被折叠?



