第4章 数组教学课件.pptx

第4章数组2025/6/101数组是Python中非常基础的一种顺序存储的数据结构,也被称为顺序表,首先介绍顺序表,然后介绍数组。顺序表的特点;array类;数组与围圈留一问题;数组与参数存值;数组与稳定排序;二分法与数组;数组的相等;数组与洗牌。

4.1顺序表的特点2025/6/102顺序表也是线性表的一种具体体现,顺序表节点形成的逻辑结构是线性结构、节点的存储结构是顺序存储,即节点的物理地址是依次相邻的。注意:由于顺序表使用数组实现顺序存储,因此也称顺序表的节点为元素。

2025/6/1034.1顺序表的特点顺序表使用数组来实现,顺序表的节点的物理地址是依次相邻的,因此可以随机访问任何一个节点,不必从头节点计数查找其它节点。1查询节点??

2025/6/1044.1顺序表的特点?3删除节点?

4.2array类2025/6/105Python的array模块(数组模块)提供了array类,该array类可为用户程序实现动态数组(属于顺序表结构)。array模块的array类同时也提供了操作数组的方法,例如添加元素、插入元素、删除元素等方法(Python中把独立的算法称作函数,把和类有关的算法称作方法)。

2025/6/1064.2array类1.创建数组注意:无法动态指定数组的大小,即元素的个数。使用array模块的array类的构造函数array(typecode,initalize)创建数组时需要指定数组的元素的类型和初始元素,即指定typecode的具体类型和initalize的具体值。?

2025/6/1074.2array类2.数组的使用3.数组的长度数组通过索引来访问元素,索引从0开始,例如:使用Python提供的内置len()函数来获取数组的长度。例如:

2025/6/1084.2array类4.数组的引用array数组属于引用型变量。如果两个array数组具有相同的引用,他们就有完全相同的元素。

2025/6/1094.2array类5.数组的复制可以用已有的数组arr得到一个新的数组arr_new,新数组arr_new和arr的元素值相同,但二者是两个不同的数组。

2025/6/10104.2array类6.array类的常用方法(1)append(value):在数组末尾添加一个新元素

2025/6/10114.2array类6.array类的常用方法(2)extend(iterable):在数组末尾添加一个可迭代对象中的所有元素(3)insert(index,value):在指定索引位置插入一个值为value的新元素

2025/6/10124.2array类6.array类的常用方法(4)remove(value):移除数组中的第一个匹配指定值value的元素(5)pop(index):移除指定元素并返回该元素的值,如果不指定index的值,即pop()移除尾元素并返回尾元素的值。

2025/6/10134.2array类6.array类的常用方法index(value):从索引开始0开始至数组最后一个索引查找第一个匹配指定值value的元素的索引(如果没有找到返回-1);index(value,start)从索引start开始至数组最后一个索引查找第一个匹配指定值value的元素的索引(如果没有找到返回-1)。

2025/6/10144.2array类6.array类的常用方法(7)count(value):返回数组中指定值value出现的次数。(8)reverse():将数组的元素值反转。(9)tolist():返回和数组有相同元素值的列表。

2025/6/10154.2array类7.array数组的类型array模块中的数组类型可以是基本的类型,即类型可以是以下几种:b:有符号字节(signedchar)B:无符号字节(unsignedchar)u:Unicode字符(Py_UNICODE)h:有符号短整数(signedshort)H:无符号短整数(unsignedshort)i:有符号整数(signedint)I:无符号整数(unsignedint)l:有符号长整数(signedlong)L:无符号长整数(unsignedlong)f:单精度浮点数(float)d:双精度浮点数(double)array模块中的数组类型不支持对象,即不能在array数组中直接存储Python对象,如字符串、列表、字典等。

4.3数组与围圈留一问题围圈留一是一个古老的问题(也称约瑟夫问题):若干个人围成一圈,从某个人开始顺时针(或逆时针)数到第3个人,该人从圈中退出,然后继续顺时针(或逆时针)数到第3个人,该人

文档评论(0)

1亿VIP精品文档

相关文档