概述
内存的工作原理
- 计算机就像是很多抽屉的柜子,每个抽屉都有地址。
- 用户需要将数据存储到内存时,请求计算机提供存储空间,由计算机给用户提供一个存储地址。
数组
优点:
- 支持随机访问
- 内存效率高
缺点:
- 元素必须连续存储
- 需要预先申请存储空间
- 插入删除操作需要移动其他元素
链表
优点:
- 元素可以不连续存储
- 插入删除操作方便
- 不需要预先申请存储空间
缺点:
- 访问元素时,必须先访问前面所有元素,也就是仅支持顺序访问
- 内存效率较低
数组 | 链表 | |
---|---|---|
读取 | O ( 1 ) O(1) O(1) | O ( n ) O(n) O(n) |
插入 | O ( n ) O(n) O(n) | O ( 1 ) O(1) O(1) |
删除 | O ( n ) O(n) O(n) | O ( 1 ) O(1) O(1) |
选择排序
选择排序算法的时间复杂度为 O ( n 2 ) O(n^2) O(n2),python代码如下,比C++实现简洁很多。
def findmin(arr):
min_val = arr[0]
min_index = 0
for i in range(1,len(arr)):
if arr[i] < min_val:
min_val = arr[i]
min_index = i
return min_index
def selectsort(arr):
newArr = []
for i in range(len(arr)):
min_index = findmin(arr)
newArr.append(arr.pop(min_index))
return newArr
print(selectsort([2,3,1,6,5]))
>>>[1, 2, 3, 5, 6]
最后
以上就是合适银耳汤为你收集整理的《算法图解》第二章读书笔记的全部内容,希望文章能够帮你解决《算法图解》第二章读书笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复