- 计算机内存犹如堆叠的抽屉
- 存储多个元素的结构:数组和链表
- 数组:元素连续排放在一起。读取速度快(索引读取)
- 链表:每个存储单元中含有指针指向下一个元素地址,因此可分开存放(插入和删除速度快,不需要移动其他元素位置,仅需要修改指针)
- 在同一个数组(Array)中,所有元素的类型必须相同(int、double等)
选择排序
举例:根据你喜爱音乐的播放次数,排序歌曲
- 新建一个表,记录已排序的结构
- 从现有表中找出播放次数最多的歌曲,放入新表
- 第二步找出第二多的歌曲放入新表
- 依次进行,知道结束,得到已排序的新表
时间复杂度:O(n*n)
def find_smallest(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 selection_sort(arr):
new_arr = []
for i in range(len(arr)):
smallest_index = arr.pop(find_smallest(arr))
new_arr.append(smallest_index)
return new_arr