《大话数据结构》读书笔记(一)-预备知识

预备知识,主要是《大话数据结构》1、2章内容,主要是数据结构和算法的一些基本知识,其中最重要的是算法的时间复杂度计算

数据结构

程序设计=数据结构+算法

数据结构的基本概念

数据

描述客观事物的符号, 计算机中可操作的对象,能被计算机识别,并输入给计算机处理的符号集合

数据元素

组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录

数据项

一个数据可由若干个数据项组成
数据项是数据不可分割的最小单位

数据对象

性质相同的数据元素的集合,是数据的子集

数据结构

相互之间存在一种或多种特定关系的数据元素的集合

逻辑结构与物理结构

逻辑结构

数据对象中数据元素之间的相互关系

物理结构

数据的逻辑结构在计算机中的存储形式

抽象数据类型

数据类型

一组性质相同的值的集合及定义在此集合上的一些操作的总称

抽象数据类型

一个数学模型及定义在该模型上的一组操作
描述抽象数据类型

算法

算法的基本概念

一般定义

解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,而且每条指令表示一个或多个操作

算法特性

输入输出
有穷性
确定性
可行性

算法设计的要求

正确性
可读性
健壮性
时间效率高和存储量低

算法效率的度量

事后统计

事前分析估算

算法的时间复杂度

在进行算法分析时,语句总执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)= O(f(n)),f(n)是问题规模n的某个函数。

推导大O阶方法

1.用常数1取代运行时间中的所有加法常数。
2.在修改后的运行次数函数中,只保留最高阶项。
3.如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

常见的时间复杂度

常见时间复杂度,所消耗的时间从小到大
O(1)<O(logn)<O(n)<O(nlogn)<O(n2) <O(n3)<O(2n) <O(n!)<O(nn)

常用排序算法的时间复杂度在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章