一:时间复杂度
大o表示法,主要有O(n) O(n的平方)

二:利用数据结构优化算法
1:哈希表的应用(字典)
什么是哈希表?
(哈希表在内存中也是一段连续的空间、哈希表为啥是无序的,是因为哈希表里面的key值通过哈希算法的计算,计算出来是某个值,好处是查找的时候,直接通过key就能找到对应的数据)
python中的set其实底层也是一种哈希,只不过它的value都是None, 所有set里面的值是不能重复的。
两数之和!!!
target = 13
lista = [5, 9, 7, 8, 10]
# 第一种,按位循环,时间复杂度:o(n^2)
for index, value in enumerate(lista):
for i in range(index + 1, len(lista)):
if lista[index] + lista[i] == 13:
print(index, i)
#第二:使用哈希表,时间复杂度:o(n)
dicta = {}
for index, value in enumerate(lista):
dicta[value] = index
if dicta.get(target - value) i
本文探讨了数据结构中的哈希表、栈、队列和链表,强调它们在算法优化中的作用。哈希表用于快速查找,如解决两数之和问题;栈的特性适用于处理有效括号问题;队列则在处理优先级问题时发挥作用,如数据流中的第K大元素;链表的概念包括数据区和链接区,可用于复杂的节点操作。这些数据结构在Python中的实现和应用是算法问题解决的关键。
订阅专栏 解锁全文
516

被折叠的 条评论
为什么被折叠?



