`
wang7839186
  • 浏览: 41216 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据结构学习第一天

 
阅读更多

昨晚想看看高性能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

 

分享到:
评论

相关推荐

    数据结构算法

    wcf系列5天速成——第一天 binding的使用(1) wpf系列(8)8天入门wpf—— 第八天 最后的补充 8天入门wpf—— 第七天 画刷 8天入门wpf—— 第六天 细说控件 8天入门wpf—— 第五天 数据绑定 8天入门wpf—— 第四天 模板...

    严蔚敏:数据结构题集(C语言版)

    《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参考教材。本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的...

    第一百零六天学习记录:数据结构与算法基础:链表Ⅰ(王卓教学视频)配套cpp代码

    第一百零六天学习记录:数据结构与算法基础:链表Ⅰ(王卓教学视频)配套cpp代码

    数据结构与算法分析——C语言描述(Weiss著)的学习笔记

    对于如何消化掉这本书,我初步给出一个建议: 读上Weiss的《数据结构与算法分析 C语言描述》三遍,能坚持下来,你的收获会很大: 第一遍,通读本书,不要丢掉任何细节,这一遍下来至少不能对书中涉及到的内容存在...

    javaSE第一天学习

    JavaSE 第一天学习课程旨在为初学者提供了 Java 语言的基础知识,涵盖了 Java 语言的应用场景、Java 基础阶段知识结构、软件开发介绍、计算机编程语言介绍、Java 语言概述、Java 运行机制及运行过程、开发环境搭建、...

    数据结构(C++)有关练习题

    31 习题9 排序------------------------------------------------------------------------------------34 第1部分 C++基本知识 各种数据结构以及相应算法的描述总是要选用一种语言工具。在计算机科学...

    《深度学习:21天实战Caffe》高清PDF

    第8天 Caffe数据结构 101 第9天 Caffe I/O模块 149 第10天 Caffe模型 172 第11天 Caffe前向传播计算 181 第12天 Caffe反向传播计算 193 第13天 Caffe最优化求解过程 207 第14天 Caffe实用工具 231 下篇 升华 第15天 ...

    数据结构专业课程设计题目.doc

    数据结构专业课程设计题目 数据结构是一门基础的计算机科学课程,旨在培养学生对数据的存储、处理和分析的能力。该课程设计题目旨在帮助学生深化了解书本知识,致力于用学过理论知识和上机取得实践经验,处理具体、...

    唐纳德•克努思提出算法及数据结构的概念 .doc

    微软首席执行官比尔·盖茨曾经说过:“如果你认为你是一名真正优秀的程序员,那么就去读第一卷,并确信可以解决其中所有的问题。” 克努思的贡献不仅限于计算机科学领域,他还影响了整个软件行业。他的作品《计算机...

    python学习MongoDB.txt

    第一天 MongoDB (芒果数据库) 数据存储阶段 文件管理阶段(.txt .doc .xls) 优点 : 使用简单,展现直观 可以长期保存数据 可存储数据量比较大 缺点 : 查找不方便 容易造成数据冗余 数据格式不规范 ...

    迅速刷leetcode-Algorithm-and-data-structure:学习《算法和数据结构》与《leetcode题库》记录

    easy,后面熟了这个数据结构一天也能刷 5 道难题,不会在初期被挫的刷不下去,培养一种刷题的“爽”感。 这个顺序完成之后,你已经完成了 25% 以上的进度条了,之后翻转顺序,从 hard 向 easy 进行刷题,开始会有点...

    MySQL学习第一天 第一次接触MySQL

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较...

    100天机器学习.zip

    机器学习的研究主要分为两类研究方向:第一类是传统机器学习的研究,该类研究主要是研究学习机制,注重探索模拟人的学习机制;第二类是大数据环境下机器学习的研究,该类研究主要是研究如何有效利用信息,注重从巨量...

    hell03W:iOSer学习小程序第一天

    come on, 明天花一天时间, 学习小程序, 测试框架和功能, 最后做一个简单的天气预报小程序. 希望一天可以搞定吧. (此图片来源于网络,如有侵权,请联系删除! ) 第三感觉, 尼玛, 这编辑器太烂了, 不好用的很......, ...

    《算法导论》第二版中文全集,含:全世界唯一带“完整”目录的版本,代码。第3部分(共4部分)。学好核心技术,既为自己,也为天空不落下别国的炸弹

    全世界最广泛使用的算法超经典书籍 学习编程必看之书 作者之一的Rivest就是RSA算法发明者的R 2002年图灵奖得主 算法是程序员必练内功 此书主要讨论算法 数据结构方面的内容稍少 中文翻译质量不错 ############...

    66daysofdata:我66天学习数据科学之旅的个人经历

    第一天因此,这是我数据访问66天的第一天,此刻,我正在关注Github的页面Data Analyst建议的学习路径( ),以了解python上的一些基本语法和软件包。 ,您可以在这里查看我的代码。 我关注的课程是由Maxwell Armi( ...

Global site tag (gtag.js) - Google Analytics