数据结构和算法
这个栏目主要学习锻炼数据结构和算法,让思维更加灵活、跳动
若之灵动
专注于移动应用研发
展开
-
链表实现LRU算法
1.缓存 CPU缓存:位于CPU与内存之间的临时存储器。解决CPU速度和内存速度的速度差异问题。 软件缓存:内存缓存、本地缓存、网络缓存 2.内存缓存 预先将数据写到了容器(list,map,set)等数据存储单元中,就是软件内存缓存。 3.内存缓存淘汰机制 FIFO (First In, First Out) 先进的元素,先被淘汰,队列 LFU (Least Frequently Used) 使用频率最低 先被淘汰 记录元素的使用频率 LRU (Least Recently Used)原创 2022-05-14 15:14:47 · 359 阅读 · 0 评论 -
排序算法二 选择排序
1.选择排序描述: 选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把最小的元素放到最前面。 但是过程不同,冒泡排序是通过相邻的比较和交换,而选择排序是通过对整体的选择。 其实选择排序可以看成冒泡排序的优化,选择排序只有在确定了最小数的前提下才进行交换,大大减少了交换的次数。 2.排序流程 找到数组中最大(小)的那个元素; 将它和数组的第一个元素交换位置(如果第一个元素就是最大(小)元素那么它就和自己交换); 在剩下的元素中找到最大(小)的元素,将它与数组的第二个元素交换位置。如此往复,直原创 2022-05-14 13:03:20 · 144 阅读 · 0 评论 -
排序算法一冒泡排序
1.冒泡排序描述: 冒泡排序是一种简单的排序算法。 它重复地遍历过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。 遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为相关的元素会经由交换慢慢“浮”到数列的顶端。 基本思路: 比较相邻的元素。如果第一个比第二个大(小),就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大(小)的数; 针对所有的元素重复以上的步骤,除了最后一个原创 2022-05-14 12:50:12 · 314 阅读 · 0 评论