一、什么是数据结构
1.数据结构(Data Structure):
是指相互之间具有(存在)一定联系(关系)的数据元素的集合。数据元素之间的相互联系(关系)称为逻辑结构。数据元素之间的逻辑结构有四种基本类型:
2.数据结构的形式定义是一个二元组:
3.逻辑结构和物理结构
4.逻辑结构思维导图
二、数据类型:原子类型和结构类型
1.数字:
2.字符串:
(1)字符串链接“+”
(2)重复输出字符串“*”
(3)通过索引湖区字符串中的字符“[]”
(4)截取字符串中的一部分“[:]”
3.列表(list):使用方括号来创建
4.元组(Tuple):用小括号创建,其中的元素不能修改。
5.集合(set):无序且不重复,用{}或set()创建
6.字典:eg
三、算法
1.算法的定义
是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。
(1)有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
(2)有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
(3)可行性: 一个算法是能行的。即算法描述的操作都可以通过已经实现的基本运算执行有限次来实现。
(4)输入: 一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。
(5)输入: 一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。
2.评价一个好的算法有以下几个标准:
3.时间复杂度
算法中基本操作重复执行的次数是问题规模n的某个函数,其时间量度记作 T(n)=O(f(n)),称作算法的渐近时间复杂度(Asymptotic Time complexity),简称时间复杂度。
一般地,常用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来表示。
2.“O”的定义:
若f(n)是正整数n的一个函数,则 O(f(n))表示$M≥0 ,使得当n ≥ n0时,|f(n)| ≤ M |f(n0)| 。
O (nk): k≥2 ,k次方时间阶
eg1.由于是一个三重循环,每个循环从1到n,则总次数为: n×n×n=n3 时间复杂度为T(n)=O(n3)
eg2.Ø语句频度为:2n2 .
O(1)<O(㏒n)<O(n)<O(n㏒n)<O(n2)<O(n3)
(2). 当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊。因此,只要有人能将现有指数时间算法中的任何一个算法化简为多项式时间算法,那就取得了一个伟大的成就。
4.算法的空间分析
空间复杂度(Space complexity) :是指算法编写成程序后,在计算机中运行时所需存储空间大小的度量。
3.一般地,算法的空间复杂度指的是辅助空间。