一些数据结构的底层原理

C++:

vector,相当于python中的list,可以当作栈使用

map的底层是用红黑树实现的,键会自动排序,操作的时间复杂度是O(log(n))级别

unordered_map的底层是用hash table实现的,操作的时间复杂度是常数级别

set,集合,为内部自动有序(note: 增序)且不含重复元素的容器,内部由红黑树实现;

multiset,内部可以允许有重复元素;

unordered_set,可以去重但是无序,内部由散列实现,速度比set要快很多

更多参见https://zhuanlan.zhihu.com/p/150118797

python:

https://www.runoob.com/python3/python3-data-structure.html

list,相当于C++中的vector,可以当作栈使用

deque: 双向队列

from collections import deque

deque.append()     deque.appendleft()

deque.pop()           deque.popleft()

https://www.cnblogs.com/xiaobingqianrui/p/8483118.html

Python数据结构常用模块:collections、heapq、operator、itertools

collections是日常工作中的重点、高频模块,常用类型有:

计数器(Counter)

双向队列(deque)

默认字典(defaultdict)

有序字典(OrderedDict)

可命名元组(namedtuple)

模块heapq中一些重要的函数:https://blog.csdn.net/jamfiy/article/details/88185512

函 数                                                           描 述
heappush(heap, x)                                        将x压入堆中
heappop(heap)                                      从堆中弹出最小的元素
heapify(heap)                                           让列表具备堆特征
heapreplace(heap, x)                            弹出最小的元素,并将x压入堆中
nlargest(n, iter)                                       返回iter中n个最大的元素
nsmallest(n, iter)                                   返回iter中n个最小的元素


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值