数据结构与算法
文章平均质量分 85
用来总结一些常见数据结构以及算法,记录学习的过程与思考
01ADH
大二在校生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构与算法】图算法
图的邻接矩阵是一种表示图(无向图或有向图)的方法。邻接矩阵是一个二维数组,其中行和列分别对应图中的顶点。如果两个顶点之间存在边,则在相应的位置标记为1(当为加权图时为边的权重),否则标记为0(或者为无穷大)。对于无向图而言它是对称的,有向图的邻接矩阵不一定是对称的。原创 2024-12-12 09:09:42 · 1206 阅读 · 0 评论 -
[数据结构和算法006]快速排序以及其衍生算法
本文将介绍如何分别在数组和链表中实现快速排序,以及实现随机化快速排序。最后我们介绍一些由partition衍生出的算法:利用快速选择求解TOPK问题。原创 2024-10-30 14:43:55 · 768 阅读 · 0 评论 -
[数据结构和算法001]有关插入排序的总结
介绍了插入排序的算法,并且在数组和链表中进行了实现。此外又介绍了递归版本的插入排序,最后分别通过减少比较次数和移动次数引入了折半插入以及二路插入排序算法。原创 2024-10-22 20:51:56 · 1106 阅读 · 3 评论 -
[数据结构和算法003]二叉搜索树(Binary Sort Tree)和二叉平衡树(Balanced Binary Tree)
为空树或者具有下列性质的二叉树:①左子树不空:则左子树所有节点小于根结点;②右子树不空:则右子树所有的结点大于根结点;③左右子树也分别为二叉搜索树。当中序遍历一棵二叉搜索树的时候,会得到一个以结点值递增的有序序列。首先给出二叉树的结构体定义int value;//构造函数:接受一个int类型的参数val并且初始化数据域value。原创 2024-10-27 09:19:14 · 1167 阅读 · 0 评论 -
[数据结构与算法002]归并排序
归并排序的思想在很多算法都会有体现,这一节介绍归并排序在数组和链表的实现。原创 2024-10-23 16:12:22 · 412 阅读 · 0 评论 -
[数据结构和算法005]堆排序
首先我们解释一下完全二叉树的概念:在逻辑结构上它满足这样两个性质:①出最后一层都是满的②且最后一层从右向左依次填满;由于这样的性质,我们可以不使用传统的链式结构,我们可以选择使用数组来存放其结构(因为它对数组的利用率为100%)。如下示意图:我们以层序遍历二叉树的顺序将结点的value存放到数组之中。此外根据这个结构我们可以得到一个重要的性质:对于一个结点而言:当它在数组中的位置为i;其左孩子在数组中为2*i+1,其右孩子为2*i+2.原创 2024-10-29 19:56:25 · 468 阅读 · 0 评论 -
[数据结构和算法004]红黑树
红黑树基于二叉搜索树而实现的,结构上采取三叉链结构,即除left和right以外添加了parent指针,这里涉及到了关键点1:如果一个结点没有子节点或者父节点则相应的left,right,或者parent指针的属性记为NIL,我们把这些指针视为指向二叉搜索树的“叶节点”(外部结点),而对于带有关键字的结点成为内部节点。此外为结点添加了一个属性color,用来表示结点的颜色,其取值red,black。通过对任何一条从根结点到叶子结点的简单路径上每一个结点的color进行约束。原创 2024-10-27 21:21:42 · 892 阅读 · 0 评论
分享