数据结构及算法学习(一)
一、数据结构范畴
数据结构是一门与程序设计密切相关的课程,而程序设计就是算法+数据结构,算法即是处理数据的策略,而数据结构就是表达程序设计的模型,可以说任何一个程序设计问题,我们都可以从算法和模型出发。概而言之,数据结构就是描述了程序设计的数学模型及在其程序设计上的表示和实现。
二、基本概念
(1)数据:是计算机处理信息的载体,是其某种特定的符合表达形式的集合,它的定义范畴会随着计算机的发展而不断扩大,最初的数据范畴是数字,而现在发展到图片、音频、视频等多种形式。而其的每个个体叫数据元素。而每个个体又可以有多种表达形式表示,我们称为数据项,数据项是数据结构的最小单位。
(2)数据结构:是一个带有结构的数据元素的集合。也就是说给任何一组数据元素加上了一定规则的结构,我们即可称为数据结构。
(3)数据的逻辑结构
1、线性结构
2、树形结构
3、网状结构
4、集合结构
(4)数据的存储结构(指逻辑结构在存储器的映像)
关系的映像方法
1、顺序映像,两个相邻的数据元素的存储位置相差一个常量
2、链式映像,用指针表示后续关系,每个元素包含了自身信息还有指向后续元素的指针信息
(5)抽象数据类型(ADT)
ADT的两个重要特征:
1、数据的抽象性,用ADT描述程序处理的实体时,只强调器实体的本质特征和完成的功能及它和外部用户的接口
2、数据的封装性,将实体的外部传值特征和内部实现的具体细节分离,实现了内部的细节的封装性。
三、算法及其衡量
算法是为了解决某类问题而进行的一个有限长的操作序列,其五大特征:有穷性(步骤和时间的有限性)、确定性(对处理的问题有明确的范畴规定)、可行性(可以在有限次实现)、有输入、有输出。
1、算法设计原则
(1)正确性(满足需解决问题的需求、不含语法错误)
(2)可读性(易于人的理解)
(3)健壮性(对非法操作做出温和处理)
(4)高效率与低存储量需求
2、算法衡量的方法和准则
(1)事后统计法(2)事前分析估算法(优于第一种)
3、算法执行时间的相关因素
(1)选用的策略 (2)问题的规模 (3)程序语言 (4)编译机器产生的可执行代码的质量 (5)计算机执行指令的速度