
基础知识
Bound for
这个作者很懒,什么都没留下…
展开
-
内部排序算法总结
插入排序算法思想:每次将一个待排序的序列插入到前面一个已排好序的子序列当中。直接插入排序1)查找L(i)在L[1,i-1]中的插入位置2)将L[k,i-1]中的所有元素向后移动一个位置3)将L(i)复制到L(k)位置代码时间复杂度分析:假设排序后,数据需要从小到大排列最优情况:初始数据序列为顺序,只需要进行n次比较就好,时间复杂度为O(N)最差情况:初始序列为逆序,外面的循环需要经历n次,内部循环总共需要经历n次比较交换,时间复杂度为O(N^2)2. 希尔排序先将排序表分割成d原创 2020-08-04 09:05:36 · 263 阅读 · 0 评论 -
散列表
定义散列表是一种通过散列函数将关键字直接定位到value存储的地址的数据结构,从而实现快速的查找散列函数直接定址法:addr=a*key+b,其中a,b均为常数;定义一个线性函数对key进行映射,这样的哈希方式可以避免冲突,但是对于key分布比较分散的情况比较浪费存储空间取余法:假设散列表长度为n,去小于等于n最大的质因子m,addr=key%m数字分析法:在所有key确定的情况下,分析key对应的二进制数值,分析哪几位二进制位组成的数字分散比较均匀,对这几位二进制位对应的数值进行散列映射原创 2020-08-03 19:43:53 · 183 阅读 · 0 评论 -
CPU的多级缓存
一、CPU多级缓存架构CPU主要存在L1,L2,L3三级缓存,序号越小,越接近CPU,速度越快一个CPU内核中有两个L1缓存(分别存储指令、数据),一个L2缓存;一个插槽中的内核共享一个L3缓存当CPU访问数据时,从上到下访问,如果都没有命中 ,则去内存中查找对应的数据并加载到缓存中二、MSEI协议因为操作系统中并发的存在,多核CPU中不同内核中执行的线程可能需要互相访问缓存中的数据,如果通过内存来实现跨核访问,则会导致访问速度的降低,并且内存控制器的带宽是一定的,无法承载如此大的数据访问量原创 2020-07-15 21:24:10 · 1145 阅读 · 0 评论