当前位置: 首页 > news >正文

中山网络公司网站做网站公司大连

中山网络公司网站,做网站公司大连,房地产网站设计公司,佛山建设小学网站文章目录 LRUCache LRUCache 1. LRUCache是一种缓存的替换技术#xff0c;在CPU和main memory之间根据计算机的局部性原理#xff0c;往往会采用SRAM技术来构建CPU和主存之间的高速缓存#xff0c;DRAM(dynamic random access memory)用于构建主存#xff0c;LRUCache这种… 文章目录 LRUCache LRUCache 1. LRUCache是一种缓存的替换技术在CPU和main memory之间根据计算机的局部性原理往往会采用SRAM技术来构建CPU和主存之间的高速缓存DRAM(dynamic random access memory)用于构建主存LRUCache这种缓存替换技术常被应用于高速缓存中缓存行的替换我们接下来就要模拟实现LRUCache这种数据结构。 LRU 缓存 2. LRUCache主要实现两个接口一个是get一个是put实现get和put有人可能会想到用一个哈希表因为哈希表查找和插入数据的时间复杂度刚好是O(1)这当然没问题但是你如何实现LRU呢 我们如何每次在数据满了之后删除的数据是最近没有访问的数据呢这该怎么保证实际上要保证LRU方式数据的删除和更新使用一个链表是最合适不过的了如果我们访问了某一个数据那就把这个数据从链表中的某一位置移动到链表头去这样的话每次最近访问的数据都会在链表的头部而长时间不访问的数据就会在链表尾部放着那么当数据结构中数据满了的时候我们只要将链表尾部的数据删除即可然后将新到来的数据重新插入到数据结构中这样就可以实现LRU了。 但是现在还有一个问题我们是将数据存储到链表当中了但是当涉及到更新操作时如何快速找到特定的pair结点将他的value值更改呢如果遍历链表来更新的话那么这个操作就不是O(1)了而是O(N)所以如何找到特定结点成为了破局的关键我们让哈希表存储的pair对中的value值为链表的迭代器这样一来就完美设计出一个高效的LRUCache结构了。 在查找某一结点时我们直接用哈希表就可以实现O(1)的快速查找只要能够查找到结点那么get操作put时可能的更新操作这些就都是O(1)时间复杂度了。 在实现代码时如果我们访问了某个结点那么就要把这个结点转移到链表头部转移的操作可以使用erasepush_front但这样会涉及到迭代器失效的问题因为哈希表中存储的迭代器指向原来的结点结点被你erase了那么迭代器就会失效我们还需要自己重新更改哈希表中存储的迭代器这样有点麻烦同时删除结点其实会遍历链表这样的操作也不是很高效那么这时候STL还给我们提供了一个接口splice意为拼接可以将某一位置的迭代器指向的结点拼接到链表中的任意位置拼接的原理其实就是通过更改指针的指向来完成结点的转移这样就可以不用释放结点和重新申请结点的操作了效率就会高一些。 3. 某些面试官为了测试我们的能力并不想让我们使用STL自带的list而是想要让我们手搓一个链表来完成这题则我们可以自己实现一个双向循环链表为了使得头插尾删操作的便捷性与传统的带头双向循环链表不同的是我们可以伪造两个哨兵卫结点一前一后分别是dummyHead和dummyTail这样在实现尾删接口时我们不用再去找尾同时在头插时也不用考虑结点作头的情况直接在dummyHead后面插入即可所以说两个哨兵卫结点是真的香啊
http://www.pierceye.com/news/46696/

相关文章:

  • 北京市住房与城乡建设网站北恩uc3客户管理软件
  • 厦门市建设协会网站首页昆明做网站优化
  • 设计公司做网站价格培训机构出来的前端好找工作吗
  • php网站制作工具网站开发外包计入什么科目
  • 广州洲聚网站开发简单的网站开发工具
  • 云网站建设的意义php框架做网站
  • 阿里巴巴国际站下载电脑版沈阳短视频制作公司
  • 做全房订制网站公司网站开发公司会计
  • wordpress海外建站网站建设模板怎么做
  • 商务网站建设个人总结html基本结构代码
  • 营销型企业网站策划方案贵州做团队培训的网站
  • 淘宝网站的建设目的是什么意思wordpress的cute主题破解版
  • 重庆云诚度网站建设网站建设的现状
  • 东莞网站忧化微信小程序推广
  • 安福县住房和城乡建设局网站wordpress网代码显示图片
  • 网站开发可选择的方案有电子商务网站建设的市场分析
  • 百度站长平台工具门户网站建设实施方案
  • 重庆网站建设网页设计国外的创意设计网站
  • wordpress改成自己网站企业网站建设推广
  • 建立免费公司网站淮北网络推广
  • 公司网站名词解释什么是门户
  • 有了域名之后怎么做网站网站开发主要用到哪些工具
  • 四川城乡建设厅官方网站网站图片怎么做优化
  • 合肥网站建设方案咨询什么是电子商务公司
  • mooc网站开发流程图网页设计师一个月多少钱
  • 餐厅网站建设什么网站开发计算机语言的比较
  • 山东建设和城乡建设厅注册中心网站首页展示型网站功能
  • 网站开发工具需求几年做啥网站能致富
  • 建手机网站怎么收费织梦唯美网站源码
  • 网站开发流程分析可视化域名网站模块被删了