基本数据类型(Primitive Data Type):
整型,浮点型,布尔(bool),和字符类型
特点:不能一起他类型来定义的基本数据类型,或者成为标亮数据类型(Scalar Data Type)
结构数据类型 (Structure Data Type):
字符串(string),数组(array),指针(pointer),列表(list),文件(file)等。
特点:结构数据类型也称为虚拟数据类型,是一种必基本数据类型更高一级的数据类型
抽象数据类型(Abstract Data Type,ADT)
堆栈(Stack)
特点:我们可以将一种数据类型看成是一种值的集合,以及在这些值上所进行的运算及其所代表的属性组成的集合。抽象数据类型比结构数据类型更高级,是指一个数据模型以及定义在此数学模型上的一组数学运算或操作。也就是说,ADT在计算机中用于表示一种信息隐藏的程序设计思想以及信息之间的某一种特定的关系模式。
计算机的主要工作就是吧数据经过某一种运算处理转换为使用的信息。
算法:
数据结构+算法 = 可执行程序
数据结构与算法是程序设计实践中最基本的内涵。程序能否快速而高效的完成预定的任务,取决于是够选对了数据结构,而程序是够能清楚而争取的吧问题解决取决于算法
在韦氏词典中算法的定义为:在有限的步骤内解决数据问题的程序。运算在计算机领域中我们可以吧算法定义为:为了解决某县工作或猴哥问题,所需要的有限数量的机械性或重复性指令与计算步骤。
算法的条件:
算法的特性 | 内容与说明 |
输入(input) | 0个或者多个输入数据,这些输入必须有清楚的描述或定义 |
输出(out) | 至少会有一个输出结果,不可以没有输出结果 |
明确性(Definiteness) | 每一个指令或步骤必须是简洁明确的 |
有限性(Finiteness) | 在有限步骤后一定会结束,不会产生无限循环 |
有效性(Effectiveness) | 步骤清楚且可行,能让用户用纸笔计算而求出答案 |
程序设计语言:目前算法也能够直接以可读性高的高级程序设计语言来表示
以下是用python语言编写pow()函数,计算输入两个数x,y的,x的y方的值
def pow(x,y):
p=1
for i in range(1,y+1):
p *= x
return p
print(pow(2,3))
print(list(range(1,5))) #代表从1到5(不包含5)
print(list(range(1,7,2)))#代表从1到7,间隔2(不包含5)
print(list(range(5))) #代表从0到5(不包含5)
range()函数
算法和过程的区别
过程不一定要满足有限性的要求,如操作系统或及其上运行的过程,除非宕机,否则用羊仔等待循环中,这就违反了算法五大条件的有限性。
算法性能分析
对于一个程序(或算法)性能的评估,经常是从时间与空间两个维度来进行考虑,时间方面是指程序的运行时间,称为时间复杂度(Time Complexity)。空间方面则是此程序在计算机内存所占的空间大小,称为空间复杂度(Space Cpmplexity)。
空间复杂度:
所谓空间复杂度,就是估算一个算法在运行过程中临时占用内寸空间的大小,是一种浅近表示法。而这些需要的内存通常可以氛围固定内存空间,(包括基本程序代码,常数,变量等),变动空间内存(随运行时而改变大小的使用空间,例如引用类型变量)。由于计算机硬件发展的日新月异及涉及到的计算机不同,因此存粹从程序(或算法)的性能角度来看,应该以算法的运行时间为主要评估与分析的依据。
时间复杂度:
我们可以就某个算法的执行步骤计数来衡量运行时间的标准,也是一种浅近表示法