- 博客(7)
- 收藏
- 关注
原创 CPU多级缓存——CPU缓存一致性协议(MESI)
简介MESI协议是基于Invalidate的高速缓存一致性协议,并且是支持回写高速缓存的最常用协议之一。 它也被称为伊利诺伊州协议(由于其在伊利诺伊大学厄巴纳 - 香槟分校的发展)。 回写高速缓存可以节省很多通常在写入缓存上浪费的带宽。四种状态的介绍每一块被写入cache的内容都会使用4种状态进行标记。它们分别为:M:被修改的(Modified)此高速缓存行仅存在于当前的ca...
2019-10-12 17:04:01 626
原创 关于Java重写equals()方法的步骤
Java语言规范要求equals方法具有下面的特性:自反性:对于任何非空引用x,x.equals(x)应该返回true 对称性:对于任何引用x和y,当且仅当y.equals(x)返回true,x.equals(y)也应该返回true 传递性:对于任何引用x和y和z,如果x.equal(y)返回true,y.equals(z)返回true,x.equals(z)也应该返回true 一致性:...
2019-07-11 14:13:41 586
原创 利用反射式编程编写一个通用的toString()方法
通过Java的反射式编程机制,我们可以通过Field、Constructor以及Method类来获取一个类的域成员、构造函数以及方法的具体信息,以此我们可以编写一个通用的toString()方法,所谓通用,即输入的参数可以接受任何类型的变量,返回描述该对象的所有域成员的字符串。不过在编程开始之前,我们需要解决几个问题:反射机制的默认行为受限于Java的访问控制,为了能够访问一个类的所有域成...
2019-07-09 22:55:08 311 1
原创 C++实现希尔排序——内部排序
希尔排序又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本,但它是非稳定的排序算法,该方法因D.L.Shell于1959年提出而得名。其基本思路也很简单,我们设置一个gap计算每次的缩小增量,每趟排序以gap进行分组,例如假设当前的gap为2的话,那么他的分组就是array[0],array[2],......为1组,下一组为array[1],array[3],......依此类推...
2019-01-04 20:27:58 426
原创 C++实现直接插入排序——内部排序
直接插入排序的基本思路是,选定当前位置Index,那么认为Index以前的数据都是有序的。那么接下来的操作是先保存当前位置的数据,从Index-1开始往前找,如果当前遍历到的位置严格比Index位置的大,那么就执行把当前数据赋值给毗邻的下一个数据的操作,否则我们就找到的要插入的位置(当前位置的下一个位置为目标位置)这里有一道oj题:输入数据个数n,n个数据 输出直插排序的每...
2019-01-04 19:48:51 426
原创 C++实现根据先序遍历的结果创建二叉树,完成各种遍历以及获取树的高度的操作。
二叉树的创建以及遍历一般都采用递归的方式进行,当然也有非递归的方式,本文不做讨论。本文二叉树的创建是根据先序遍历的结果进行建树的,空节点用#补满,具体样例见文末的测试数据。下面附上代码:#include <iostream>#include <queue>#include <string>using namespace std;//定义节点的结构...
2019-01-03 12:52:51 1328
原创 关于数据结构顺序表的相关操作。
#include <iostream>using namespace std;class SeqList { public: int *array; int size; int capacity; SeqList(int size); ~SeqList(); void t...
2019-01-02 22:00:24 172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人