本章内容
- 两种最基本的数据结构--数组和链表
- 学习排序算法,很多算法仅在数据是有序的才有用,参照二分查找
数组和链表(精确到具体的地址之后的执行)
内存的工作原理-就像蜂巢的存储柜一样,例如feoffeeb就是内存的地址。有两种基本的存储方式数组和链表。下面我们来看看他们的定义,以及优缺点。
数组
他是按照地址有序排列,优点:可以通过索引快速读取(元素的位置称为索引)。缺点:在插入和删除时,会改动数据后面的索引。
链表
每个元素都存储下一个元素地址,从而使一系列内存地址串联在一起。优点:插入和删除只需要改变当前元素地址。缺点:读取时遍历所有内容
排序算法-选择排序
要求:数组元素从小到大排序
一:找出最小元素
def findSmallest(arr):
smallest = arr[0]
smallest = 0
for i in range(1,len(arr)):
if arr[i]< smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
二:插入新的列表(pop提取并删除)
def selectionSort(arr):
newArr = []
for i in range(1,len(arr)):
smallest = findSmallest(arr)
newArr.append(arr.pop(smallest))
return newArr
print(selectionSort([5,3,6,2,10]))
Tips:同一组数组,元素类型要相同