嵌入式定制设计工坊
码龄5年
关注
提问 私信
  • 博客:285,353
    社区:34
    动态:433
    285,820
    总访问量
  • 94
    原创
  • 2,316,840
    排名
  • 425
    粉丝
  • 7
    铁粉

个人简介:在天赋面前,努力不值一提!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2020-02-19
博客简介:

qq_46359697的博客

查看详细资料
个人成就
  • 获得546次点赞
  • 内容获得82次评论
  • 获得2,056次收藏
  • 代码片获得993次分享
创作历程
  • 49篇
    2021年
  • 52篇
    2020年
成就勋章
TA的专栏
  • STM32
    16篇
  • 笔记
    31篇
  • 算法
    26篇
  • 数据结构
    28篇
  • 编程
    3篇
  • 物联网
    15篇
  • 操作系统知识
    8篇
  • FreeRTos
    2篇
  • cpu
    7篇
  • RTT
    7篇
  • IMX6ULL
    5篇
  • Linux
    3篇
  • 32易错点
    1篇
  • C++
    11篇
  • PCB笔记
    3篇
  • Git
    5篇
  • 双链表
    1篇
  • git美化
  • 递归
    2篇
兴趣领域 设置
  • 人工智能
    opencv计算机视觉
  • 硬件开发
    arm开发
  • 服务器
    linux
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

数表排序之红黑树

文章目录1.基本概念1.1.红黑树的引进1.2.红黑树的规则1.3.红黑树的举例2.红黑树的性质3.红黑树的操作4.总结1.基本概念1.1.红黑树的引进AVL的左右子树高度差不能超过1,每次进行插入/删除操作时,为了确保AVL树的特性,几乎都需要通过旋转操作保持平衡。在频繁进行插入/删除的场景中,频繁的旋转操作使得AVL的性能大打折扣。为了解决这个问题,引进的红黑树。红黑树通过牺牲严格的平衡,换取插入/删除时少量的旋转操作,整体性能优于AVL红黑树插入时的不平衡,不超过两次旋转就可以解决。删除时的
原创
发布博客 2021.12.31 ·
1274 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

树的遍历之B树及其变种

文章目录1.基本概念1.1.B树的引进1.2.B树的定义1.3.B树的举例2.B+树3.B*树4.总结1.基本概念1.1.B树的引进我们发现,之前的二叉树、AVL,2-3树…这些树每一个节点所存储的数值量就只有一个,而这个数据量(键值)的目的是进行比较的,因为结合了数组和链表的操作,所以在进行排序的时候非常的方便。但是这种数据结构在数据库中查找数据或者是说对大容量设备,比如磁盘,SD卡,并不起作用。因此,B树诞生了。B 树是为了磁盘或其它存储设备而设计的一种多叉平衡查找树。也就是说B树中每一个节点所包
原创
发布博客 2021.12.29 ·
875 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

数表遍历之2-3树

文章目录1.基本概念1.1. 2-3树引进1.2. 2-3树定义1.3. 2-3举例2.2-3树的性质3.2-3树的操作3.1.数的遍历3.2.树的插入3.2.1.向2-节点中插入元素;3.2.2.向一颗只含有一个3-节点的树中插入元素;3.2.3.向一个父节点为2-节点的3-节点中插入元素;3.2.4.向一个父节点为3-节点的3-节点中插入元素。3.3.树的删除总结1.基本概念1.1. 2-3树引进二叉搜索树在最好的情况下搜索的时间复杂度为 O(logn) ,但如果插入节点时,插入元素序列本身就是有
原创
发布博客 2021.12.29 ·
651 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数表查找之平衡二叉树

文章目录1.基本概念1.1.AVL引进1.2.AVL定义1.3.AVL举例2.平衡因子3.AVL树插入时失衡与调整3.1.左旋3.2.右旋4.AVL四种调整方式4.1.LL型调整4.2.LR型调整4.3.RL型调整4.4.RR型调整5.调整总结6.删除节点总结7.参考博客1.基本概念平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。1.1.AVL引进
原创
发布博客 2021.12.29 ·
786 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

数表查找之二叉搜索树

文章目录1.基本思想2.算法步骤3.代码实现3.2.算法实现3.3.1.创建3.3.2.查找3.3.3.插入3.2.4.迭代3.2.5.删除3.2.测试程序4.实验结果与心得完整代码二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势,所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。1.基
原创
发布博客 2021.12.24 ·
1185 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

二叉树遍历代码实现

文章目录1.定义2.特点3.树的遍历准备工作线性栈实现线性队列实现3.1.先序遍历3.1.1.迭代版本3.1.2.递归版本3.2.中序遍历3.2.1.迭代版本3.2.2.递归版本3.3.后序遍历3.3.1.迭代版本3.3.2.递归版本3.4.层序遍历3.4.1.迭代版本4.测试程序5.总结1.定义二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。
原创
发布博客 2021.12.22 ·
2757 阅读 ·
2 点赞 ·
0 评论 ·
15 收藏

哈夫曼树的实现

文章目录1.基本概念1.1.路径和路径长度1.2.数的路径长度1.3.结点的权和带权二叉树1.4.结点的带权路径长度和树的带权路径长度1.5哈夫曼树2.算法实现3.存储结构4.代码实现4.1.算法实现4.2.测试程序5.实现结果1.基本概念1.1.路径和路径长度若在一棵树中存在着一个结点序列k1,k2,k3,kj,使得ki是kj的双亲( 1≤i<j),则称此结点序列是从k1~kj的路径。因树中每个结点只有一个双亲结点,所以它也是这两个结点之间的唯一路径。从k1~kj,所经过的分支数称为这两点
原创
发布博客 2021.12.17 ·
2934 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

七大查找之哈希查找

文章目录1.基本思想2.算法步骤3.代码实现3.1.算法实现3.2.测试程序4.程序结果1.基本思想哈希查找算法又称散列查找算法,是一种借助哈希表(散列表)查找目标元素的方法,查找效率最高时对应的时间复杂度为 O(1)。哈希查找算法适用于大多数场景,既支持在有序序列中查找目标元素,也支持在无序序列中查找目标元素。讲解哈希查找算法之前,我们首先要搞清楚什么是哈希表。哈希表(Hash table)又称散列表,是一种存储结构,通常用来存储多个元素。和其它存储结构(线性表、树等)相比,哈希表查找目标元素的
原创
发布博客 2021.12.15 ·
7450 阅读 ·
30 点赞 ·
1 评论 ·
131 收藏

七大查找之斐波那契查找

文章目录1.基本思想2.算法步骤3.代码实现3.1.算法实现3.2.测试程序4.实验结果1.基本思想斐波那契搜索(Fibonacci search) ,又称斐波那契查找,是区间中单峰函数的搜索技术。斐波那契查找就是在二分查找的基础上根据斐波那契数列进行分割的。(mid的关系式不同)斐波那契查找同样是查找算法家族中的一员,它要求数据是有序的(升序或降序)。斐波那契查找采用和二分查找/插值查找相似的区间分割策略,都是通过不断的分割区间缩小搜索的范围 。(分治法)斐波那契数列(Fibonacci sequ
原创
发布博客 2021.12.15 ·
3654 阅读 ·
17 点赞 ·
2 评论 ·
46 收藏

七大查找之分块查找

文章目录1.基本思想2.算法步骤3.代码实现3.1.算法实现3.2.测试程序4.实验结果1.基本思想分块查找,也叫索引顺序查找,算法实现除了需要查找表本身之外,还需要根据查找表建立一个索引表。例如上图中,待查找表中共 18 个查找关键字,将其平均分为 3 个子表,对每个子表建立一个索引,索引中包含中两部分内容:该子表部分中最大的关键字以及第一个关键字在总表中的位置,即该子表的起始位置。建立的索引表要求按照关键字进行升序排序,查找表要么整体有序,要么分块有序。分块有序指的是子表中所有关键字都
原创
发布博客 2021.12.15 ·
3644 阅读 ·
2 点赞 ·
1 评论 ·
16 收藏

七大查找之插值查找

文章目录1.基本思想2.算法步骤3.代码实现3.1.算法实现3.1.1.迭代法3.1.2.递归法3.2.测试程序4.程序细节5.实验结果1.基本思想回顾一下二分查找法的优缺点,二分查找相比于顺序查找效率提高不少(前提待排序的数组是顺序的),但对于有目的性的查找,比如想在一个字典中想查找banana,这个时候你还会选择二分查找吗?因为b这个字母在字典中的位置前列。换句话说,针对于不同的单词,结合我们的先验知识,自适应地翻到响应的页码。经过以上分析,折半查找这种查找方式,不是自适应的(也就是说是傻瓜式的)
原创
发布博客 2021.12.15 ·
511 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

七大查找之二分查找

二分查找1.基本思想2.算法步骤3.代码实现3.1.算法实现3.1.1.迭代法3.1.2.递归法3.2.测试程序4.代码细节4.1.迭代和递归终止条件4.2.递归终止条件奇异原因5.实验结果1.基本思想说明:元素必须是有序的,如果是无序的则要先进行排序操作。二分查找也称为是折半查找,属于有序查找算法。用给定值k先与中间结点的关键字比较,中间结点把线形表分成两个子表,若相等则查找成功;若不相等,再根据k与该中间结点关键字的比较结果确定下一步查找哪个子表(是左还是右),这样递归进行,直到查找到或查找结束发
原创
发布博客 2021.12.10 ·
974 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

七大查找之顺序查找

顺序查找1.什么是查找2.基本思想3.代码实现3.1.算法实现3.2.测试程序4.实验结果1.什么是查找查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本系列博文将简单概括性的介绍了常见的七种查找算法查找定义:根据给定的某个值,在查找表中确定一个其关键字(数值)等于给定值的数据元素。查找算法分类:静态查找和动态查找静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。无序查找和有序查找。​
原创
发布博客 2021.12.10 ·
770 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

十大排序算法源码C实现

发布资源 2021.12.08 ·
7z

十大排序之桶排序

桶排序桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序),最后依次把各个桶中的记录列出来记得到有序序列。桶排序是鸽巢排序的一种归纳结果。桶排序的思想就是和分治法是一样的!!!1. 算法步骤设置一个定量的数组当作空桶子。寻访序列,并且把数组元素一个一个放到对应的桶子去。对每个不是空的桶子进行排序。从不是空的桶子里把数组元素再放回原来的序列中。2. 动图演示[
原创
发布博客 2021.12.08 ·
1179 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

十大排序之基数排序

文章目录基数排序基数排序 vs 计数排序 vs 桶排序1. 算法步骤2. 动图演示3. 代码实现3.1. 算法实现3.2. 测试程序4.实验结果基数排序基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数,字符串等也可以用基数排序。基数排序 vs 计数排序 vs 桶排序基数排序有两种方法:这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:基数排
原创
发布博客 2021.12.07 ·
1179 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

十大排序之计数排序

计数排序计数排序1. 算法步骤2. 动图演示3.代码实现4.实验结果计数排序计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序。计数排序要求输入的数据必须是有确定范围的整数,该范围是已知的。当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(待排序数组的长度要大于待排序的数组元素),这使得计数排序对于数据范围很大
原创
发布博客 2021.12.07 ·
461 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

十大排序之堆排序

堆排序1.概念1.1. 堆的性质1.2. 堆的存储1.3. 堆的操作1.4. 排序思想2.算法步骤3.动图演示4.代码实现4.1. 最大堆排序4.1.1 算法实现4.1.2 测试程序4.2. 最小堆排序4.2.1 算法实现4.2.2 测试程序5.代码解释1.概念堆一般指的是二叉堆,顾名思义,二叉堆是完全二叉树或者近似完全二叉树。堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点
原创
发布博客 2021.12.03 ·
663 阅读 ·
1 点赞 ·
3 评论 ·
1 收藏

十大排序之快速排序

快速排序快速排序1.算法步骤2.动图演示3.代码实现3.1.首元素作为基准数3.2.尾元素作为基准数3.3.测试程序4.归纳总结快速排序快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为
原创
发布博客 2021.12.01 ·
7061 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

十大排序之归并排序

归并排序1.算法步骤1.1.递归法1.2.迭代法2.动图演示3.代码实现3.1.递归实现3.1.1.算法实现3.1.2.测试程序3.1.3.疑问3.1.4.现象3.1.5.解释3.1.6.验证3.1.6.1.左递归先开始3.1.6.1.右递归先开始3.1.7.总结3.2.迭代法3.2.1.算法实现3.2.2.测试程序3.2.3.理解4.总结归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。作为一种典型的
原创
发布博客 2021.11.30 ·
10840 阅读 ·
1 点赞 ·
2 评论 ·
2 收藏
加载更多