一、数组和链表
数组中储存的所有元素在内存中都是相连的。
链表中的元素可存储在内存中的任何地方,其每个元素都存储了下一个元素的地址。
数组的优势在于访问元素,链表的优势在于插入元素。
数组读取:O(1) 数组插入:O(n)
链表读取:O(n) 链表插入:O(1)
二、选择排序
选择排序必须检查列表中的每个元素,如对名字按首字母排序,必须先在原列表中查找出ASCII码值最小的值,然后移到新列表中,同时把该元素从原列表中删除。需要O(n^2)的运行时间。
代码示例:对数组从小到大排序
def find_smallest(arr):
Smallest = arr[0]
for i in arr:
if i < Smallest:
Smallest = i
return Smallest
def SelectionSort(arr):
SortedArr = []
for i in range(len(arr)):
Smallest = find_smallest(arr)
SortedArr.append(Smallest)
arr.remove(Smallest)
return SortedArr