数组:所有元素是相同类型的列表。
数组常用操作 | 常用操作中代码 | 时间复杂度 |
---|---|---|
创建数组 | a = [ ] | O(1) |
添加元素 | a.append(1) a.insert(2,10) |
O(1)或O(n) O(n) |
访问元素 | temp = a[2] | O(1) |
修改元素 | a[2] = 29 | O(1) |
删除元素 | a.remove(1) a.pop(2) a.pop |
O(n) O(n) O(1) |
数组长度 | length = len(a) | O(1) |
遍历数组 | O(n) | |
搜索元素 | index = index(2) | O(n) |
数组排序 | a.sort() a.sort(reverse = True) |
O(nlogn) |
1. 创建数组
a = [] #创建数组
2. 添加元素
a.append(1) #在数组最后添加元素1
a.append(2) #在数组最后添加元素2
a.insert(2, 10) #在数组索引为2的位置插入元素10
正常情况下,append的时间复杂度是O(1);当添加元素时,数组的存储空间不足了,需要重新找新的存储空间进行存储,这时候时间复杂度是O(n)。 insert的时间复杂度是O(n)。 3. 访问元素
temp = a[2] #访问数组索引为2的元素
访问元素的时间复杂度是O(1)。 4. 修改元素
a[2] = 29 #修改数组索引为2的元素
修改元素的时间复杂度是O(1)。 5. 删除元素
a.remove(1) #删除数组中第一个值为1的元素
a.pop(5) #删除数组索引为5的元素
a.pop() #删除数组中最后一个元素
6.数组的长度
length = len(a)
print('length:',length)
时间复杂度是O(1)。 7.遍历数组
#三种方法
for i in a:
print(i)
for index,element in enumerate(a):
print('index:', index, 'element:', element)
for i in range(len(a)):
print('index:', i, 'element:', a[i])
时间复杂度是O(n)。 8. 搜索元素
index = a.index(2) #查找第一个值为2的元素的索引
print('index:', index)
时间复杂度是O(n)。 9.数组排序
a.sort() #数组从小到大排列
print(a)
a.sort(reverse = True) #数组从大到小排列
print(a)
时间复杂度是O(nlogn)。