数组
数组是将元素连续存放的,由于每个元素所占的内存相同,可以通过下标迅速访问数组中任意元素。但是如果增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后再将要添加的元素放入其中。
数组的元素都在一起
数组的读取速度很快
数组支持随机访问
链表
链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系在一起,每个节点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点的指针。如果要访问列表中的元素,需要从第一个元素开始一直找到所需要元素的位置。但是增加和删除元素对于链表来说就简单了,只要修改元素的指针2就可以了。
链表的插入与删除很快。
链表元素是分开的,其中每个元素都存储了下一个元素的地址。
选择排序代码
def findSmallest(arr):
smallest=arr[0]
smallest_index=0
for i in range(1,len(arr)):
if arr[i] < smallest:
smallest=arr[i]
smallest_index=i
return smallest_index
def selectionSort(arr):
newArr=[]
for i in range(len(arr)):
smallest=findSmallest(arr)
newArr.append(arr.pop(smallest))
return newArr
print (selectionSort([5,3,6,2,10]))