自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 堆及简单代码实现

即取出堆顶元素后将堆中该元素删除,主要思路为将堆最后一个的元素赋值给堆顶,然后删除数组中最后一个元素,这样实现了堆顶元素的删除,并且通过堆的向下排序,重新实现堆的有序性。在这样的子树中,对5进行排序,需要将它和根节点进行比较,若大于根节点则需要交换位置,在这样不断循环,向上排序5最终会停留在比根节点小的位置,或者是到达堆顶成为最大值。而整个堆的排序,需要对树结构进行倒序层次化遍历,从最后一个非叶节点开始重复向下排序,使得对于每一个节点的子树都是最大堆,遍历到最后产生的树也是最大堆。

2023-11-18 20:42:32 44 1

原创 单调栈学习

在上面的流程中,已经揭露了其中的逻辑,找一个元素右侧第一个大于自身值的元素即是令自己在单调栈中退栈的元素。5. 9>8 所以 8 退栈 9 进栈 说明8 右边第一个大于8的值是9 而9不存在这样的值。事实上,单调栈的运用范围十分狭隘,主要用于求指定数组元素中下一个更大的元素类似的问题。4. 8>5>7 所以 5 7 退栈 8 进栈 说明5,7右边第一个大于5的值是8。2. 因为4比7小,所以4退栈,7进栈 说明4右边第一个大于4的值是7。同样的左侧第一个大于自己的元素等等类似的题目都有类似的思路。

2023-11-17 20:52:12 38

原创 Warshall 算法详解

在关系矩阵中,如果(i,j)位为1,如果存在某个k使得(j,k)也为1,那么根据传递性(i,k)也为1。所以我们可以利用二重循环遍历整个矩阵(优先行、列皆可)当存在i,j使得(i,j)为1时,实现当k=0,1,,,n-1时,若存在(j,k)为1 ,则赋值(i,k)为1。用等式实现即为 (i, k) = (i,k)|(j,k) (即逻辑加,有1则1)。warshall 算法用来解决传递关系闭包问题。

2023-11-15 16:14:36 731 3

原创 Essential C++ Unit 1 answer

【代码】Essential C++ Unit 1 answer。

2023-11-09 19:01:31 33 2

原创 Essential C++ Unit_2 Answer

【代码】Essential C++ Unit_2 Answer。

2023-11-06 20:08:37 33

原创 位向量和位运算符

一种由一串0、1构成的数据结构。可以通过小空间储存大数据,主要用途在于记录集合中的数字存在与否。主要有六个位运算符分别是&, | , ^ , ~ , << , >> ,假设 a = 1 化为二进制为 001,b= 6 化为二进制为 110。<<:将二进制数左移,右边用0补齐。>>:将二进制数右移,左边用0补齐。位向量-bitvector。

2023-11-06 19:31:38 49

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除