自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (2)
  • 收藏
  • 关注

原创 不相交集类以及生成迷宫

一、简介不相交集:不相交集类维持着多个彼此之间没有交集的子集的集合,可以用于 判断两个元素是否属于同一个集合,或者合并两个不相交的子集。比如,{ {1,3,5},{2},{4},{6,7} }这整体就是一个不相交集合。里面的一些子集也是彼此互不相交的。基本数据结构:使用一棵树来表示一个子集,树的根节点可以代表当前子集,而所有子集的集合就是一个森林。而对于根树的存储结构,采用数组实现。...

2020-02-29 20:13:06 358

原创 快速排序( quick sort )

一、简介顾名思义,对于C++,快速排序历史上一直是实践中已知最快的泛型排序算法,快速排序是一种分治的递归算法。最坏时间复杂度:O( N2 )最好时间复杂度:O( NlogN )平均时间复杂度:O( NlogN )二、快速排序操作1.经典快速排序:如果 S 中元素个数是0或1,则返回。 取 S 中任一元素v,称之为枢纽元( pivot )。 将 S - { v }(即...

2020-02-27 21:56:52 149

原创 归并排序( merge sort )

一、简介基本思想:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。最坏时间复杂度:O( NlogN )最好时间复杂度:O( NlogN )平均时间复杂度:O( N...

2020-02-27 19:09:40 271

原创 堆排序( heap sort )

一、简介算法:先用所给数组构建堆,然后从堆中依次删除最大 ( 小 ) 值,各元素的删除顺序即各元素的排序。二叉堆见https://blog.csdn.net/weixin_38096504/article/details/104435748堆排序性能极其稳定,平均它使用的比较只比最坏情形界指出的略少。最坏时间复杂度:O( NlogN )最好时间复杂度:O( NlogN )...

2020-02-27 16:12:11 111

原创 希尔排序( shell sort )

一、简介增量序列:希尔排序使用一个序列h1,h2,…,ht,叫做增量序列。只要h1=1,任何增量序列都是可行的,不同增量序列有好坏之分。在使用增量hk的一趟排序之后,对每个i都有a[ i ] <= a[ i + hk ]( 插入排序 ),所以相隔hk的元素都被排序。 一个hk排序的文件( 此后将是hk-1 排序的)保持它的hk排序性。希尔排序思路:先按照增量序列进行分组再插入排序...

2020-02-27 15:33:02 124

原创 插入排序

一、简介算法:插入排序由N-1趟排序组成。对于p=1到N-1趟,插入排序保证从位置0到位置p上的元素为已排序状态。一般思路:在第p趟,我们将位置p上的元素向左移动直至找到它在前p+1个的正确位置为止。最坏时间复杂度:O( N^2 )最好时间复杂度:O( N^2 )平均时间复杂度:O( N )二、插入排序操作三、代码/* * @Author: lsyy * @D...

2020-02-27 11:27:09 81

原创 二叉堆

一、简介完全二叉树:若假设二叉树的深度为h,除第h层外,其他各层(1~h-1)的节点数都达到最大个数(即1~h-1)层为一个满二叉树,第h层所有节点都连续集中在最左边,这就是完全二叉树。堆的定义:堆(heap),这里所说的堆是数据结构中的堆,而不是内存模型中的堆。堆通常是一个可以被看做一棵树,它满足下列性质:[性质一] 堆中任意节点的值总是不大于(不小于)其子节点的值; [性质...

2020-02-21 22:02:45 133

原创 **串口传输大量数据时 总线空闲中断+DMA传输 为CPU减负**

串口传输大量数据时 总线空闲中断+DMA传输 为CPU减负 在使用串口接受数据时,如果用while在主函数等待,或者用if在主函数判断,传输少量的标志位可以,程序效率很低,如果用DMA+单字节串口接受中断,这样效率高了,但是当我们需要不间断传输大量数据时,单片机频繁进入中断,有时会影响main()函数的运行,如果采用串口总线空闲触发中断+DMA传输,可以完美的解决这两个问题。 U

2017-07-27 15:17:25 1175 1

数据结构之不相交集类的应用 ------- 迷宫

生成迷宫一个简单的算法是从各处的墙壁开始。此时,我们不断地随机选择一墙面,如果该墙分割的单元彼此不连通,那么就拆掉这面墙。如果重复这个过程直到开始单元和终止单元连通,那么就得到一个迷宫。

2020-02-29

BinaryHeap.h

二叉堆类 二叉堆的定义:二叉堆是完全二元树或者是近似完全二元树,它分为两种:最大堆和最小堆。 • 最大堆:父结点的键值总是大于或等于任何一个子节点的键值; 最小堆:父结点的键值总是小于或等于任何一个子节点的键值。

2020-02-21

空空如也

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

TA关注的人

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