- 博客(6)
- 收藏
- 关注
原创 数据结构与算法_排序算法
本博客基于《算法技术手册》,是类似学习日志一样的东西,若有错误请反映给与博主。我的所有代码可能因为篇幅的问题没有写全,只是选择几个少的或者是书中的代码贴上去上去了。其完整的程序和测试程序都会通过GitHub的形式交付到看这篇blog的你手上。GitHub传输门排序的基本要素马克思主义指导我们具体问题具体分析,排序也是一样针对不同的场景我们也会选择不同的排序手法。请关注以下几个方面1.数据的表示方式待排序的集合到底在哪里放着。这个问题是一个值得思考的问题。获取是存储在RAM,也或许是在二级存储甚至
2020-09-29 14:27:40
359
2
原创 数据结构与算法_堆
堆的概念概念 堆是在概念上是一个完全二叉树,在具体是物理实现上是一个数组。完全二叉树有个一优美的性质:有关双亲结点和孩子结点,由层序遍历对应于数组标号直接按的关系。说人话就是:把完全二叉树的层序遍历的一个设置为1号(不是 0 开头),我们发现一个节点编号为的 i 的左孩子标号一定是 2i ,其右孩子标号一定是 2i+1。 利用这样的性质,我们可以用来实现优先队列。(用普通的树也是可以实现的,按照邓老师的说法就是:杀鸡用牛刀)大顶堆和小顶堆 所谓大顶堆就是,堆中最大的元素是在根的位置,任意子树
2020-08-31 00:44:40
230
原创 数据结构与算法_并查集
概念 并查集(Disjoint Sets),字面意思是一种集合。这个集合具有的功能是合并和查找 合并(Union):将两个集合合并成一个集合。 查找(Find):判断两个元素是否在一个集合。并查集使用数组就可以实现:parent[]。图的环问题如果是我们想要判断一个无向图是否存在环,我们应该如何做呢?由这个问题正式引出并查集:首先,以上提到的并查集是一个树状的结构,其中parent数组:parent[i] = j 的含义就是 parent of i is j; 即i的双亲是j。我
2020-08-28 21:36:29
195
原创 数据结构与算法_链表
链表基本初识链表struct Node{ int data; Node * next;};以上是链表最基本的结构:一个放数据的,一个存指针的。这里的指针仅仅是C/C++的一种叫法。实际上就是为了索引下一块的一个坐标。如果有的话就写坐标,没有的话就是NULL/nullptr。初始化Node * CreatLinkList(int * array, int len){ Node * pre, * head, * temp;//pre是保存当前结点的前驱 head = new Node;
2020-08-27 22:52:06
711
1
原创 数据结构与算法_栈和队列
栈概念正如标题所述,栈是一种被约束的线性结构。我们在一个线性结构上给出了一个规定:第一个进去的最后一个出来。这就像有一摞书放在地面上,不允许从中间抽出来,只能从上面一本一本拿一样。这样的线性就是栈。所谓栈:限定仅在表头进行插入删除的线性结构。因为是后进先出(Last In First Out)不像普通的线性结构有CRUD(增删改查)那样丰富的操作。栈仅仅只有进和出两个操作。栈的顺序存储压栈Pushbool Push(T data){ if (IsFull() == true) ret
2020-08-27 21:47:42
382
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人