昨晚想看看高性能mysql,但是发现数据结构是绕不开的,所以是得好好学学数据结构了,选了一本入门教材《大话数据结构》,就当做读书笔记提炼精华了,今天是第一天,看看能坚持多久。
第一章 绪论
一、基本概念和术语
数据:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也称为记录。
数据项:一个数据元素可由若干数据项组成。数据项是数据不可分割的最小单位。
数据对象:性质相同的数据元素的集合。
数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
二、逻辑结构和物理结构
逻辑结构:数据对象中数据元素之间的相互关系,分为四种,集合,树形,线型,图形
物理结构:数据的逻辑结构在计算机中的存储形式,分为以下几种
1、顺序存储结构,是把数据元素顺序的放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一样的。
2、链式存储结构,是把数据元素放在任意的存储单元中,这组存储单元可以是连续的,也可以不是连续的。
第二章 算法
一、定义
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性:输入、输出、有穷性、确定性、可行性。
判断一个算法的效率时,函数中的常数和其他次要项可以忽略,而更应该关注主项(最高阶项)的阶数。
算法时间复杂度:
在进行算法分析时,语句的总执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)=O(f(n)),它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数
推倒大O阶的方法:
1、用常数取1代运行时间中的所有加法常数
2、在修改后的运行次数函数中,只保留最高阶项
3、如果最高阶存在且不是1,则取出与这个项相乘的常数
得到的结果就是大O阶
那么,就会产生三种阶:常数阶,线性阶,指数阶
常数阶:时间复杂度是O(1)
线性阶:循环结构会复杂很多,要确定某个算法的阶数,我们常常需要确定某个特定语句或某个语句集运行的次数,因此关键就是要分析循环结构的运行情况
第三章 线性表
零个或多个数据元素的优先序列,叫线性表。第一它是有序的,第二它是有限的。
存储器中每个存储单元都是有编号的,这个编号称为地址。
1、顺序存储结构的插入和删除
插入算法的思路:
(1)如果插入位置不合理,抛出异常
(2)如果线性表长度大于等于数组长度,则抛出异常或者动态扩容
(3)从最后一个位置开始,向前遍历到第i个位置,分别将他们都向后移动一个位置
(4)插入到第i个位置
(5)数组长度加1
分享到:
相关推荐
数据结构是计算机科学中的核心课程,对于理解和设计高效的算法至关重要,尤其在考研中,它是必考的科目之一。清华大学严蔚敏版的数据结构教材因其深入浅出的讲解和丰富的实例,成为了众多考研学子的重要参考资料。这...
课程第一天可能包括以下几个关键知识点: 1. **C++基本语法**:讲解C++的基础语法,如变量声明、常量、数据类型(整型、浮点型、字符型等)、运算符(算术、关系、逻辑、赋值等)、流程控制(条件语句if-else、循环...
这份“数据结构高分笔记勘误表”旨在帮助正在学习数据结构的学生更准确地理解教材内容,修正了可能存在的错误。以下是一些关键知识点的详细解释: 1. **数组**:在数据结构中,数组是最基本的数据结构之一,用于...
2. **9月中旬至10月中旬**:该阶段的重点是复习《数据结构高分笔记》中的算法题目,特别是第一次复习时标记出来的难点。如果有必要,可以根据最新大纲的要求,借助严版《数据结构》补充完善笔记中遗漏的知识点。同时...
哈希表是一种基于哈希函数实现快速存取的数据结构,通过将键(key)映射到表中一个位置来访问记录。开放地址法是解决哈希冲突的一种方法,二次探测再散列是其中一种策略。查找成功的平均查找长度是指在哈希表中成功...
这些文件涵盖了Java数据结构与算法的核心主题,是学习和复习的重要资源。让我们逐一解析每个文件名,探索其中可能涵盖的知识点: 1. **day02 链表.md** - 链表是数据结构的基础,它不依赖于内存位置连续存储元素。...
wcf系列5天速成——第一天 binding的使用(1) wpf系列(8)8天入门wpf—— 第八天 最后的补充 8天入门wpf—— 第七天 画刷 8天入门wpf—— 第六天 细说控件 8天入门wpf—— 第五天 数据绑定 8天入门wpf—— 第四天 模板...
问题描述如下:猴子第一天摘下若干个桃子,当即吃掉一半,还剩下一个;第二天,猴子又吃了剩下桃子的一半,再留一个;如此类推,直到某一天,猴子发现桃子不够吃,只剩下一个。我们需找出猴子最初摘了多少个桃子。...
《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参考教材。本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的...
第一天:基础概念 数据结构是组织和存储数据的方式,它不仅包括数据的物理形式,还涉及到数据之间的关系和操作。基础的数据结构包括数组、链表、栈和队列。数组提供随机访问,但插入和删除操作较慢;链表则相对灵活...
在“第一天”的压缩包文件中,通常会包含数据结构的基本概念介绍和简单示例,比如数组和链表的创建与操作。通过阅读和实践这些代码,学习者可以快速建立起对数据结构的基本认识。随着学习的深入,可能会接触到栈和...
在大数据学习的旅程中,第一天通常会涉及到大数据的基础概念、重要性以及大数据处理的基本框架。以下是对这些知识点的详细说明: 大数据,这个术语是21世纪信息技术领域的一个关键概念,它指的是传统数据处理工具...
### 数据结构学习——队列与栈 #### 一、队列的基本概念 队列是一种特殊的线性表,只允许在表的一端进行插入操作,在另一端进行删除操作。这种操作方式使得队列遵循先进先出(FIFO, First In First Out)的原则。...
第一百零六天学习记录:数据结构与算法基础:链表Ⅰ(王卓教学视频)配套cpp代码
实验分为两部分,第一部分涉及第1章至第5章的内容,可能包括基础的数据结构和算法;第二部分涉及第6章至第11章的内容,可能涉及到更复杂的数据结构操作和算法实现。学生可以选择提供的实验项目或自拟实验内容,确保...
猴子吃桃问题的描述是这样的:猴子第一天摘下若干个桃子,吃掉一半再加一个。接下来的每一天,猴子都重复前一天的操作,直到第10天只剩下1个桃子。任务是计算猴子第一天摘了多少桃子。这是一个典型的递归问题,可以...
对于如何消化掉这本书,我初步给出一个建议: 读上Weiss的《数据结构与算法分析 C语言描述》三遍,能坚持下来,你的收获会很大: 第一遍,通读本书,不要丢掉任何细节,这一遍下来至少不能对书中涉及到的内容存在...
### 运动会分数统计系统数据结构课程设计论文 #### 一、课程设计目的 本课程设计旨在培养学生将书本知识应用于解决实际问题的能力。通过实际动手操作,增强学生的编程能力和解决问题的能力。此外,该设计还着重于...
《Java数据结构和算法中文第二版》是一本深入浅出介绍数据结构与算法在Java语言中的应用的专业书籍。作者罗伯特·拉福尔(Robert Lafore)以其轻松幽默的语言风格,将复杂的概念通过直观的例子呈现出来,使得读者...