![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
马走日mazouri
淡定!
展开
-
数据结构——并查集(Union Find)(Java代码实现)
详细介绍了并查集的概念与实现原创 2020-11-29 14:45:45 · 2808 阅读 · 10 评论 -
数据结构——栈(Java代码实现)
栈栈基本概念栈的顺序存储栈的链式存储栈基本概念栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。栈的操作原则为"后进先出"(LIFO)往栈中添加元素的操作,一般叫做 push,入栈。从栈中移除元素的操作,一般叫做 pop,出栈(只能移除栈顶元素,也叫做:弹出栈顶元素)栈的内部实现可以用以前学过的动态数组和链表实现。其实有了前面的学习,栈的实现很简单。首先我们先设计一个Stack接口,里面写一些原创 2020-11-10 22:18:23 · 550 阅读 · 0 评论 -
数据结构——链表(Java代码实现)
链表前言定义模板设计单链表概念基本操作添加删除修改查询双向链表概念基本操作添加删除修改查询单向循环链表概念基本操作添加删除修改查询双向循环链表概念基本操作添加删除修改查询复杂度分析前言前面我们已经学习了数组,数组容量一经定义难以改变,同时删除和插入元素需要移动大量的数据元素,效率较低。为此,引入了线性表中的链式存储结构。链式存储的数据元素不再具有连续的地址,同时可以根据需要随时申请和释放空间,更加灵活高效,但是丧失了随机访问的能⼒。定义链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素原创 2020-10-04 22:30:46 · 1638 阅读 · 5 评论 -
算法——十大排序(冒泡排序,选择排序,堆排序,插入排序,归并排序,快速排序,希尔排序,计数排序,基数排序,桶排序)
排序算法准备算法模板冒泡排序(Bubble Sort)定义执行流程代码实现选择排序(Selection Sort)定义执行流程代码实现插入排序(Insertion Sort)定义执行流程代码实现希尔排序(Shell Sort)定义执行流程代码实现堆排序(Heap Sort)定义执行流程代码实现归并排序(Merge Sort)定义执行流程代码实现快速排序(Quick Sort)定义执行流程代码实现计数排序(Counting Sort)定义执行流程代码实现基数排序(Radix Sort)定义执行流程代码实现桶排原创 2020-08-29 09:50:43 · 3727 阅读 · 6 评论 -
数据结构——二叉堆(Java代码实现)
堆1.堆1.1定义1.2性质2.二叉堆2.1定义2.2性质2.3实现(大顶堆)2.3.1基本设计2.3.2 添加2.3.2.1上滤2.3.2.2过程分析版本一优化版本2.3.3删除2.3.3.1下滤2.3.3.2过程分析2.3.4替换(replace)2.4批量建堆(Heapify)2.4.1自上而下的上滤2.4.2自下而上的下滤2.4.3效率对比2.4.4 批量建堆2.4.5构建小顶堆2.5Top K问题2.5.1问题描述2.5.2解题思路2.5.3 代码实现3.优先级队列(Priority Queue)原创 2020-08-25 19:29:05 · 704 阅读 · 3 评论