自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

多米学算法的博客

专注算法的学习和讲解,努力写出小白也能看得懂的算法文章

  • 博客(49)
  • 资源 (48)
  • 收藏
  • 关注

原创 可视化讲解:什么是数飞机问题?

前言概念介绍在上一节“算法:什么是数飞机问题”中我们已经详细的描述了数飞机问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明讲解该问题的原理。原理讲解我们可以用一个Map来记录每一时间点的降落和起飞的飞机数。如(1,10)可以用map记录为map[1]++,代表1时刻多了一只飞机,map[10]–,代表10时刻少了一只飞机。如(2, 3)可以用map记录为map[2]++,代表2时刻多了一只飞机,map[3]–,代表3时刻少了一只飞机。依此类推,然.

2022-02-26 09:00:00 336

原创 算法:什么是数飞机问题?

最近小多米一直爬在窗子边抬头看着天空,指着空中飞机留下的白色痕迹,激动的手舞足蹈的给我说:飞机,飞机。其实每架飞机的起飞和降落都有固定的时间,假定已经知道了每架飞机起飞和降落的时间列表,小多米想知道天空同时最多有多少架飞机?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“数飞机”问题。“数飞机”问题规则如下:已知飞机的起飞和降落时间的列表,用序列 interval 表示。如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权小多米需要计算出天上同时最多有多少架飞机?样例1如下:.

2022-02-25 18:15:00 800

原创 可视化讲解:什么是分糖果问题?

前言概念介绍在上一节“算法:什么是分糖果问题?”中我们已经详细的描述了分糖果问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解首先初始化每个人一个糖果,然后这个算法通过遍历两遍来解决这个问题。第一遍我们从左向右进行遍历。如果右边的小朋友的等级高,就给右边的小朋友加一个糖果,这样保证从左到右这个方向上高等级的小朋友分的糖果多。再从右向左遍历一遍,如果相邻两个小朋友左边的等级高,而左边的糖果又少的话,则左边小朋友分的糖果数为右边小朋友.

2022-02-25 18:00:00 674

原创 算法:什么是分糖果问题?

小多米已经快到了能吃糖果的年纪了。周末,小多米和小区的小朋友们玩石头剪刀布游戏,规定:谁赢的次数多,谁的得分就高,然后按照评分来个小多米和其他小朋友分糖果,并且保证每个小朋友都至少得到一颗糖果(不给就随时哭给你看,手动狗头)。小多米需要统计出最少需要准备多少颗糖果?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“分糖果”问题。“分糖果”问题规则如下:有 N 个小孩站成一列。每个小孩有一个评级。给定数组 ratings 代表这些小孩的评级。每个小孩至少得到一颗糖果。评级越高的小孩可以比他.

2021-04-15 13:46:14 1818

原创 可视化讲解:什么是跳跃游戏问题?

前言概念介绍在上一节算法:什么是跳跃游戏问题?中我们已经详细的描述了跳跃游戏问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解我们可以将该问题转换成求最大距离问题。以输入[2,3,1,1,4]数组为例。我们遍历该数组可知:num[0]的最大距离为:2+0=2<数组的长度,所以到不了数组最后一个位置。num[1]的最大距离为:3+1=4=数组的长度,所以可以到数组最后一个位置。num[2]的最大距离为:1+2=3<数组.

2021-04-15 13:45:00 169

原创 算法:什么是跳跃游戏问题?

小多米一转眼已经快一岁了,虽然他现在还不会走,但是已经有种跃跃欲试的想跳的冲动了。现在小多米想知道经过有限的步骤,能否从这头跳到那头?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“跳跃游戏”问题。“跳跃游戏”问题规则如下:给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。小多米需要计算出能否到达数组的最后一个位置?样例1如下:输入:[2,3,1,1,4]输出:true解释:从位置0到.

2021-04-15 13:42:08 500

原创 每日备忘工具-日程清单(二)

做该工具的初衷不忘初心,方得始终。在每日备忘工具-日程清单(一)这篇文章中,我已经详细阐述了做该工具的初衷。为了继续实现这个初衷,我在春节期间针对该工具又进行了完善。适用人员办公室文员秘书学校教师财务人员公司行政等等已完善的功能完善日程记录的入口添加当前日程的分组功能(今日任务、7日内任务、一月内任务)本地化记录日程及日程当前状态添加日程当前状态(完成、进行中、延期)置灰暂未实现的功能(包括“清除所有日程”、“开机启动”、“常驻任务栏”)效果主页面添加当

2021-04-14 18:01:24 118

原创 每日备忘工具-日程清单(一)

做该工具的初衷做为一个程序员,每天要面对的工作项实在是太多太杂了比如日常和产品经理开会讨论需求、和开发人员讨论方案、和测试人员对接bug、部门内部协助、跨部门协助、对接客户等等。还要随时接收来自领导的工作安排,如果不及时定位记录每天的工作项,那遗漏些工作那就没法避免了。当领导问你某项工作完成的怎么样时,估计你就是这种表情为了在繁忙的工作中不遗漏任何工作项,我就做了这个小工具,方便安排梳理每天工作内容适用人员办公室文员秘书学校教师财务人员公司行政等等已完成功

2021-04-14 17:57:49 227 1

原创 可视化讲解:什么是车队问题?

前言概念介绍在上一节“什么是车队问题?”中我们已经详细的描述了车队问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解车队问题解决的关键在于使用一个标准来衡量一辆车能否追上另外一辆车。由于各个车辆的初始位置不同,并且各自的速度也不同,那么可以考虑的只有时间了。所以我们先计算出在不考虑车队合并的情况下,各辆车到达终点的时间。不难理解的是如果一辆车离终点近,并且到达终点花的时间长,那么它的速度就相对慢;如果一辆车离终点远,但是它到达终点花的.

2021-04-14 17:51:44 208

原创 算法:什么是车队问题?

最近小多米喜欢玩各种各样的玩具车,有的玩具车的动力足跑得快,有的玩具车动力小跑的慢。小多米就很好奇,想知道怎么样做两个玩具车才能同时到达目的地。为了帮助小多米解决这个问题,今天我们就来看看算法领域的“车队”问题。“车队”问题规则如下:N辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着.

2021-04-14 17:49:53 343 1

原创 可视化讲解:什么是任务计划问题?

前言概念介绍在上一节“算法:什么是任务计划问题?”中我们已经详细的描述了任务计划问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理注意在执行两个“相同的任务”之间,必须至少有n个单位时间,此时CPU不能执行该任务,只能执行其他任务或者不工作。原理讲解假设最大任务执行次数为a,该任务编号为A,我们不考虑其他任务,其需要的等待时间是(a - 1) * n。除去编号为A的任务,假设还有最大任务执行次数为b,该任务编号为B的任务。该任务中的.

2021-04-14 17:47:12 186

原创 算法:什么是任务计划问题?

最近小多米喜欢做各种各样的任务计划,但是这么多任务在一起,她就头大不知道该先做哪个?也不知道怎么才能以最短的时间完成这些任务?为了帮助小多米解决这个问题,今天我门就来看看算法领域的“任务计划”问题。“任务计划”问题规则如下:给定一个字符串,表示CPU需要执行的任务。 这个字符串由大写字母A到Z构成,不同的字母代表不同的任务。完成任务不需要按照给定的顺序。 每项任务都可以在一个单位时间内被完成。 在每个单位时间,CPU可以选择完成一个任务或是不工作。但是,会有一个非负的冷却时间“n”,表示在执行两个.

2021-01-08 14:11:34 333 2

原创 可视化讲解:什么是小行星的碰撞问题?

前言概念介绍在上一节“算法:什么是小行星的碰撞问题?”中我们已经详细的描述了小行星碰撞问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理注意对于每个小行星,绝对值表示其大小,符号表示其移动方向(正代表右,负代表左)如果两颗小行星相遇,则较小的小行星会爆炸原理讲解第一次,来了一颗小行星A,其大小为5。由于现在只有一颗小行星,所以它不会和任何行星碰撞,行星们处于稳定状态。此时效果如下图。第二次,来了一颗小行星B,其大小为2。由于小行.

2021-01-05 13:04:39 221

原创 算法:什么是小行星的碰撞问题?

最近,小多米突然对天文学产生了兴趣,一直在问什么是小行星?小行星会不会发生碰撞?看着小多米兴致盎然的样子,我明白现在是时候考验下她小行星到底会不会碰撞了?小行星的碰撞规则如下:给定一个整数数组,代表一行小行星。对于每个小行星,绝对值表示其大小,符号表示其移动方向(正代表右,负代表左)。 每个小行星以相同的速度移动。返回所有碰撞发生后小行星的状态。 如果两颗小行星相遇,则较小的小行星会爆炸。 如果两者的大小相同,则两者都会爆炸。 沿同一方向移动的两颗小行星永远不会相遇。小多米需要计算出给定的小行星们.

2021-01-05 13:01:33 291

原创 可视化讲解:什么是棒球游戏问题?

前言概念介绍在上一节“什么是棒球游戏问题”中我们已经详细的描述了棒球游戏问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解第一回合,史蒂夫得了5分,小多米在记分板上写上了5。当前回合史蒂夫得了5分,总计得5分,此时效果如下图。第二回合,史蒂夫得了2分,小多米在记分板上写上了2。当前回合史蒂夫得了2分,总计得5+2=7分,此时效果如下图。比赛依旧在紧张的进行中,裁判突然发现上一回合史蒂夫犯规了。裁判判定史蒂夫第二回合分数无效,取消.

2021-01-05 13:00:09 134

原创 算法:什么是棒球游戏问题?

最近,社区准备举行棒球比赛,小多米积极报名参加了志愿者,帮助比赛记录分数。这是小多米第一次报名参加社区活动,第二天一大早,她就去接受记录分数的培训了。下午,小多米回到家,没有了出门时的兴高采烈,脸上多了些愁容。问了才知道,原来记分规则她听明白了,但是总分怎么算还不知道。棒球比赛记分规则如下:给定一个字符串数组,每一个字符串可以是以下4种中的其中一个:整数 (一个回合的分数): 直接表示这回合你得到的分数。“+” (一个回合的分数): 表示这回合你获得的分数为前两个有效分数之和。“D” (一个.

2021-01-05 12:57:08 143

原创 可视化讲解:什么是宠物收养所问题?

前言概念介绍在上一节什么是宠物收养所问题中我们已经详细的描述了宠物收养所问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理注意:同一时刻呆在收养所中的要么全是宠物,要么全是领养者。原理讲解第一天,小多米的宠物收养所开门大吉,邻居小王把自己的宠物大黄送到收养所。小多米忙前忙后的给小宠物清洗直到夜晚才用自己的“神奇公式”给大黄编上了特点值5挂到脖子上;此时收养所里有1只宠物,0个领养者,领养者对宠物的不满意度为0。具体效果如下图。第二天,邻居如.

2020-12-17 12:32:56 207

原创 算法:什么是宠物收养所问题?

​最近,小多米准备开一间宠物收养所。这个收养所就只提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。但是呢,小多米很担心领养了自己宠物的领养者对领养的宠物不满意。于是呢,她自己发明了一个特殊的公式,用来算出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而她也给每个在收养所的宠物一个特点值。这样一来,她通过统计就很容易知道宠物领养者对自己领养的宠物满意度,也能够很方便的处理整个领养宠物的过程了。宠物收养所总是只会有两种情况发生:被遗弃的宠物过多或者想要收养宠物的人太多

2020-12-17 12:28:09 249

原创 可视化讲解:什么是八皇后问题?

前言概念介绍1. 八皇后问题起源八皇后问题(英文:Eight queens),是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。问题描述:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。请问一共有多少种摆法?原理讲解由于篇幅限制,我们将八皇后问题简化为4皇后问题来讲解其原理(八皇后问题和4皇后问题的原理是一致的)第一步,我们从第一行开始,遍历第一行中所有的列,找到第一.

2020-12-09 19:33:56 1577

原创 可视化讲解:什么是汉诺塔问题?

前言概念介绍1. 汉诺塔问题起源汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从上往下从小到大顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘,只能移动在最顶端的圆盘。有预言说,这件事完成时宇宙会在一瞬间闪电式毁灭。也有人相信婆罗门至今仍在一刻不停地搬动着圆盘。当然这个传说并不可信,如今汉诺塔更多的是作为一个玩具存在2.什么是汉诺塔问.

2020-12-01 12:47:14 3847

原创 可视化讲解:什么是拉丁方阵问题?

前言概念介绍1. 基本概念拉丁方阵(英语:Latin square)是一种 n × n 的方阵,在这种 n × n 的方阵里,恰有 n 种不同的元素,每一种不同的元素在同一行或同一列里只出现一次。(注:来源百度百科)2.相关历史据说普鲁士的腓特列大帝曾组成一支仪仗队,仪仗队共有36名军官,来自6支部队,每支部队中,上校、中校、少校、上尉、中尉、少尉各一名。他希望这36名军官排成6×6的方阵,方阵的每一行,每一列的6名军官来自不同的部队并且军衔各不相同。令他恼火的是,无论怎么.

2020-11-11 12:19:56 1504

原创 可视化讲解:什么是魔术师发牌问题?

前言概念介绍1. 基本简介一位魔术师掏出一叠扑克牌,魔术师取出其中13张黑桃,洗好后,把牌面朝下。魔术师说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中数1,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌。魔术师第二次数1,2,将第1张牌放到这叠牌的下面,将第2张牌翻开,正好是黑桃2,也把它放在桌子上。魔术师第三次数1,2,3,前面2张牌放到这叠牌的下面,取出第3张牌,正好是黑桃3,这样依次将13张牌翻出,全部都准确无误。求解:魔术师手.

2020-11-03 12:43:48 828

原创 可视化讲解:什么是约瑟夫环?

前言概念介绍1. 基本概念约瑟夫问题,有时也称为约瑟夫斯置换,是一个计算机科学和数学中的问题。在计算机编程算法中,类似问题被称为约瑟夫环,又称丢手绢问题。2. 问题来历据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀.

2020-10-26 12:50:28 2536

原创 程序员代码之外的生存指南

作为程序员,你想的最多的是什么?程序员的工作中主要就是和代码打交道,一般程序员不是在写bug,就是在改bug(谁让bug都是他们自己写的)。程序员想的最多的就是如何提高自己的技术能力?如何能提高自己的编码水平,写出优雅的代码?如何能提高薪资待遇?(这个不管哪个职业都想吧)诚然,“代码”是程序员的生存法宝。但是,作为一个人仅仅只会写代码,想要生活质量再上一个层次,那也是很难的。代码之外的生存指南最近在看了一本书叫《代码之外的生存指南》,一位美国程序员写的。看书名就知道,这是一本和程序员生存

2020-09-26 11:36:00 372

原创 递归是如何用栈来实现的?

前言概念介绍栈的基本概念和原理我们已在“文章链接”中做过具体说明,下面我们主要讲讲递归算法什么是递归?百度百科上的解释如下:程序调用自身的编程技巧称为递归;一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件满足时,递归返回;当递归条件不满足时,递归前进;递归的目的通常是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解递归的通俗解释可能你看了递归的定义后还是不明白,那就举个例子说明下:孔夫子说“三十而立”,你看了可能就在想这个.

2020-09-05 14:02:17 11938 9

原创 可视化讲解:什么是BF算法?

前言概念介绍字符串:由零个或多个字符组成的有限序列空串:零个字符的串空格串:只包含空格的串空串和空格串的区别空格串是有长度的,并且可以不止一个空格空串是没有长度的子串:串中任意个数的连续字符组成的子序列主串:包含子串的串子串在主串中的位置:子串的第一个字符在主串中的序号串的存储结构顺序存储结构链式存储结构BF算法:Brute-Force算法,是一种简单朴素的模式匹配算法,常用于在一个主串S内查找一个子串T的出现位置原理讲解我们以主串为“.

2020-07-26 07:43:08 2061

原创 不知道队列有什么用?可视化动图带你一步步讲解

前言概念介绍队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表队列是一种先进先出(First In First Out)的线性表,简称FIFO队列中允许插入的一端称为队尾,允许删除的一端称为队头队列两种存储方式顺序存储链式存储队列的2种操作方式入队操作出队操作原理讲解我们以[12 8 3 24 21]这个队列为例说明队列的顺序存储的实现原理在未作任何操作时,效果如下图入队操作执行入队操作,会从队尾插入一个随机元素66.

2020-07-13 10:21:18 619

原创 可视化栈操作

前言概念介绍栈(stack)是限定仅在表尾(即栈顶)进行插入和删除操作的线性表栈的2种操作方式插入操作,叫做进栈,也叫压栈、入栈删除操作,叫做出栈,也叫弹栈栈的2种存储方式顺序存储链式存储原理讲解当栈中只有9和12这2个元素时,效果如下图进栈操作我们插入一个元素20,效果如下图出栈操作对于栈来说,出栈只能将栈顶元素删除。因此,执行一次出栈动作,就会删除掉栈顶元素20,效果如下图至此,栈的实现原理讲解完毕栈的优缺.

2020-07-08 12:37:05 472

原创 还有2天就高考,当年你是如何选择程序员这条路的?

前言今天距离2020年高考还有2天的时间,回想当年我参加高考到现在已经过去了10年了。那么这10年我是如何一步一步走上程序员这条路的?前4年给了大学生涯遥想当年高考报志愿时,我选择了计算机科学与技术、通信工程、土木工程、电气与自动化等相关专业。当时那几年土木工程还很火(难道应该08年的4万亿刺激)。阴差阳错最终进入了电子信息工程。大三偶然参加了学校组织的智能车循迹大赛(应该是叫这个名字吧?),当时使用的是C语言写的单片机程序。从那个时候开始慢慢的接触程序设计(难道我从那个时候开始就有了做程序员的想法

2020-07-05 09:22:17 203

原创 基于QT实现的可视化单链表

前言概念介绍线性表的基本概念已经在上节可视化线性表之顺序存储过程中讲解,下面我们主要讲解线性表的链式存储原理。原理讲解我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明线性表的链式存储的实现原理在未作任何操作时,效果如下图获取元素我们获取一个值为6的元素,我们会从头元素12开始依次往后遍历直到找到值6的元素(如果整个线性表遍历结束没有找到目标值,则返回空)效果如下图删除元素随机删除位置2的元素,此时该元素值为3。删掉该元.

2020-06-29 19:37:21 1531 6

原创 可视化线性表之顺序存储过程

前言概念介绍线性表:零个或多个数据元素的有限序列线性表两种存储方式顺序存储链式存储线性表的四个操作方式获取元素设置元素插入元素删除元素原理讲解我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明线性表的顺序存储的实现原理在未作任何操作时,效果如下图获取元素随机获取一个下标6的元素,会得到返回值11,效果如下图设置元素随机设置一个下标2的元素值为28,会修改下标为2的原来元素值,效果如下.

2020-06-26 09:47:01 258

原创 快速排序算法的发明者霍尔

霍尔介绍霍尔 (Sir Charles Antony Richard Hoare) 是一位英国计算机科学家,他也是著名的快速排序算法的发明者。他出生于斯里兰卡,1956年毕业于牛津大学。然后的两年里他服役于英国皇家海军,主要工作任务是研究俄国的现代军事,并因为这个原因开始学习俄语。在他结束服役后,他以研究生的身份进入莫斯科大学主攻计算机翻译。在莫斯科学习的一年中,因为偶然的机会他为参加展览的公司Elliott Brothers充当翻译。当他回国后,这家公司立即聘用了他,因为霍尔会俄语的缘故,公司还为..

2020-06-26 09:30:43 5025 2

原创 程序员的悲哀

程序员是在吃青春饭?是真的!作为一个程序员,现在的社会给我的感觉程序员就是在吃青春饭。先不说社会上时不时爆出“程序员35岁后被裁员”、“程序员35岁后的出路”的新闻,就说“程序员猝死”的话题也是频频爆出。程序员到底是不是在吃青春饭,估计只有身在这个行业里的人感受最深吧。既然明知程序员是在吃青春饭,那我们为什么还毅然的投身在这个行业里呢?因为梦想着用技术改变世界?是的。因为程序员工资相对较高?是的。不同的人有不同的原因,但是程序员内心中大概都有用自己的技术改变世界的初衷。程序员给大家的感觉都是木讷

2020-06-22 18:52:18 251

原创 可视化基数排序算法

前言概念介绍概念介绍基数排序是非比较型整数排序算法它将整数按位数切割成不同的数字,然后按照每个位数分别比较原理讲解我们以[12 8 3 24 21 36 11 15 32 9]这个序列为例说明基数排序算法的实现原理当未开始排序时,此时效果如下图我们建立下标为0-9的十个数组用于存放数据,此时效果如下图首先我们以未排序序列个位上的数字为基数。开始遍历,将第一个元素12,放到下标为2的数组中。此时效果如下图继续遍历,将第二个元素8,放到下标为8的数组中。此时.

2020-06-20 20:42:49 241

原创 可视化桶排序算法

前言概念介绍概念介绍桶排序是计数排序的升级版它利用函数的映射关系,将待排序元素分到有限的桶里,然后桶内元素再进行排序(可能是别的排序算法),最后将各个桶内元素输出得到一个有序数列原理讲解我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明桶排序算法的实现原理当未开始排序时,此时效果如下图首先我们新建三个桶,桶1放置0-9范围内的数据,桶2放置10-19范围内的数据,桶3放置20-29范围内的数据,此时效果如下图开始遍历待排序数列,将第一个.

2020-06-20 20:31:36 242

原创 计数排序算法是如何计数的?

前言概念介绍计数排序算法是一个非基于比较的排序算法,故在排序的过程中不存在元素之间的比较和交换操作计数排序算法是一种以空间换取时间的做法,所以在一定范围内的整数排序时,它是快于任何比较排序算法原理讲解我们以[1 7 8 7 9 8 10 4]这个序列为例说明计数排序算法的实现原理当未开始排序时,效果如下图先找到待排序序列中最大值10和最小值1,此时效果如下图新建一个长度为N=最大值10-最小值1+1=10的数组,新数组中值中值均为0,此时效果如下图开始遍.

2020-06-15 17:41:26 394

原创 快速排序算法究竟有多快?

如需转载请标明出处:https://blog.csdn.net/zhuzi9前言概念介绍快速排序算法是对冒泡排序算法的一种改进通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列原理讲解我们以[2 17 17 24 34 41]这个序列为例说明快速排序算法的实现原理未开始排序算法之前,此时效果如下图准备开始排序之.

2020-06-15 17:31:11 589

原创 可视化归并排序算法

如需转载请标明出处:https://blog.csdn.net/zhuzi9QQ技术交流群:594200841前言概念介绍归并排序算法是建立再归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用归并排序的两种实现方式自上而下的递归自下而上的迭代原理讲解以[11 41 45 42 36 27 40 4]这个序列为例说明归并排序算法的实现原理未开始遍历时,此时效果如下图我们将这个序列的8个元素人为的看成序列[11 41 45 4.

2020-06-09 12:53:44 424 2

原创 可视化希尔排序算法

如需转载请标明出处:https://blog.csdn.net/zhuzi9QQ技术交流群:594200841前言概念介绍希尔排序是基于插入排序算法的一种更高效的改进版本。它是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越少,当增量减少至1时,整个文件恰被分成一组。此时算法便终止。原理讲解以[41 24 34 2 19 17]这个序列为例说明希尔排序算法的实现原理未开始遍历时,此时效果如下图由上面数组可知

2020-06-06 14:16:58 349

原创 可视化插入排序算法

前言概念介绍取出数组中无序部分的第一个元素,从后向前检查数组有序部分元素,将其插入到一个适当位置,使数组有序部分依然有序。当无序部分最后一个元素放入合适位置时,该数组排序完毕。原理讲解以41 34 19 17 2这个序列为例说明选择排序的实现原理未开始遍历时,此时效果如下图第一次遍历时,我们取出第一个元素41,并假定该元素已经有序。此时有序部分元素为41,无序部分元素为34 19 17 2。效果如下图第二次遍历时,我们取出无序部分第一个元素34,检查有序部.

2020-06-03 13:40:07 482 1

Qt下openGL编程

这是Qt结合openGL的小程序,功能比较简单,仅供新手学习。本程序开发环境:Qt Creator4.0.2+Qt5.7 注:如果程序运行出错,那是因为缺少glut库。可以参考下面链接解决:http://www.cnblogs.com/BlueSky2012/articles/2507107.html

2017-08-02

《Effective C++》

Effective C++是一本非常有用的书籍,讲解了C++一些实用知识和注意事项。如果单单的编写一些体量小的程序,你可以不需要看这本书,但是在实际工作中做项目时,推荐你读读这本书,有助于提高代码质量。

2017-07-25

改变图片大小

这是一个改变目标图片尺寸大小的工程。开发环境是:vs2010+opencv2.2.0

2017-04-22

模板匹配算法

这是模板匹配算法的工程文件,解压即可运行。开发环境为VS2010+opencv

2017-04-08

粒子滤波算法

这个粒子滤波算法的工程文件,解压压缩包即可运行。本文的开发环境为VS2010+OpenCV2.2。

2017-04-08

CamShift跟踪算法

这是对视频序列中目标进行跟踪的CamShift算法,解压即可运行。开发环境为VS2010+OpenCV2.2

2017-04-04

Haar特征结合PCA算法实现人脸检测

这个是基于Haar特征进行PCA算法降维后的人脸检测程序,解压即可运行。开发环境是VS2010+Opencv2.2

2017-04-04

hog+svm行人检测算法中D盘的文件

这是hog+svm行人检测算法中D盘的文件,把这个压缩包解压到D盘,并结合hog+svm行人检测算法中的代码使用。把待检测的图片放入TestData这个子文件夹中即可

2017-03-29

hog+svm行人检测算法实例源码下载

这个利用行人HOG特征通过SVM分类器进行分类的代码。程序运行环境为VS2013+OpenCV2.20。程序内可以选择Opencv自带的行人检测算法,也可以自己训练HOG特征进行检测。如果自己训练的话,需要在D盘建立一个文件(具体文件名程序中有)里面存在训练的正负样本,和测试样本。具体D盘的这个文件夹在本人自愿中已上传,需要请自行下载。

2017-03-27

计算图片的gamma和梯度图

开发环境是vs2010+opencv2.2,用来计算图像的gamma图和梯度图

2017-03-20

将视频文件转换为一帧帧的图片

这是一个可以将视频文件转换成一帧一帧图片的工具,方便使用。直接在transVideoToImage.bat文件中修改待转换的视频名称和路径等参数,保存后直接点击transVideoToImage.bat文件运行即可。

2017-03-18

msvcr120d.dll

解决计算机丢失MSCVR120D.dll,应用程序无法启动的情况,我的电脑是64位系统,用这个解决了问题。 PS:下载完成记得放在相应目录(我放的目录是C:\Windows\SysWOW64)

2017-03-11

opevcv2.2.0程序

这是opencv2.2.0的安装程序

2017-03-04

MissionPlanner源码

这是飞控地面站MissionPlanner源代码,用VS2013打开即可编译运行(在本人电脑亲测可用,如个别电脑编译出错,请自行调试)

2016-09-07

MFC多Dialog之间通信

简单的MFC多Dialog之间通信,VS2013下的工程,打开即可用

2016-09-06

MFC下获取地图信息

MFC下获取地图信息,功能比较简单,适合初学者入门

2016-08-31

Android下各种曲线图汇总

汇总的Android下常见曲线图,附带源码,有些没有验证过

2016-08-30

Android下实时曲线图

Android下一款画实时曲线图的工具,数据通过网络传输的

2016-08-30

文件加密软件

一个文件夹加密工具,安全可靠

2016-07-28

H.264测试视频

H.264测试视频

2016-07-01

qt-x11-2.3.2.tar.gz

qt-x11-2.3.2.tar.gz

2016-07-01

百度文库资源解析原理与实现讲解.doc

文档对百度文库资源解析原理做了讲解,希望对大家有用

2021-10-20

PCMgr.13.3.20238.213.zip

腾讯电脑管家离线安装包13.3.20238.213版本. 适合没有外网环境的系统安装,如果有需要,请下载使用

2020-12-16

ErlangOTP 21.3.zip

在编译emq过程中需要编译Erlang,故下载了该源码,本资源适用于linux系统下,如果有需要请下载

2020-07-08

线性表之链式存储效果展示

本资源为线性表的链式存储演示效果可执行文件,欢迎下载欣赏。源码请关注公众号“多米学算法”下载。希望能够帮助到你

2020-06-29

可视化展示快速排序算法实现效果

该源码使用Qt可以可视化展示快速排序算法实现效果,通过可视化的方式和实时显示算法比较和移动的次数,方便初学者理解快速排序算法的时间复杂度和原理

2020-06-11

可视化展示归并排序算法实现效果

该源码使用Qt可以可视化展示归并排序算法实现效果,通过可视化的方式和实时显示算法比较和移动的次数,方便初学者理解归并排序算法的时间复杂度和原理

2020-06-09

可视化展示希尔排序算法实现效果

该源码使用Qt可以可视化展示希尔排序算法实现效果,通过可视化的方式和实时显示算法比较和移动的次数,方便初学者理解希尔排序算法的时间复杂度和原理

2020-06-06

可视化展示插入排序算法实现效果

该源码使用Qt可以可视化展示插入排序算法实现效果,通过可视化的方式和实时显示算法比较和移动的次数,方便初学者理解插入排序算法的时间复杂度和原理

2020-06-03

可视化展示选择排序算法实现效果

该源码使用Qt可以可视化展示选择排序算法实现效果,通过可视化的方式和实时显示算法比较和移动的次数,方便初学者理解选择排序算法的时间复杂度

2020-05-26

可视化展示冒泡算法实现效果(高阶版)

该源码使用Qt可以可视化展示冒泡排序算法实现效果,在原来的基础上添加了冒泡排序算法的比较次数和移动次数,方便初学者理解冒泡排序算法的时间复杂度

2020-05-23

可视化展示冒泡算法实现效果

该源码使用Qt可以可视化展示冒泡排序算法实现效果,方便初学者理解冒泡算法,如果你有一些其他的小需求,可以在此基础上修改完善

2020-05-21

设计模式之策略模式源码

这个工程是设计模式中的策略模式的源码工程,该工程主要以一个简单的收银系统来体现策略模式的思想,仅供参考。 注:该工程包含了计算器-简单工厂模式的相关代码

2017-09-28

设计模式之简单工厂模式源码

这是设计模式中简单工厂设计模式的源代码,工程中以一个计算器的示例来体现简单工厂模式的精髓。简单工厂模式主要解决创建对象的问题。

2017-09-27

modbus slave从机调试工具

这个是Modbus slave工具,可以方便我们在开发modbus主从机通信时调试。这样我们可以用这个工具模拟从机进行测试。

2017-09-23

modbus tcp 调试工具

这个modbus tcp通信的调试时充当客户端的工具,可以方便我们在开发modbu tcp通信时调试,这样我们只需要写tcp服务器端程序就好。

2017-09-23

modbus rtu调试工具

这个modbus协议中rtu通信方式的调试工具,通过这个工具可以方便我们在开发modbus rtu通信时调试,可以辅助测试。

2017-09-23

Modbus源码

这是Modbus-3.0.6的源码,里面详细的包含了modbus的.h文件和.c文件,在linux下面解压后通过运行make编译后,再执行make install即可安装到系统中

2017-09-04

Qt事件处理之鼠标处理事件

这是一个Qt事件处理系统,目前只实现了鼠标事件的处理,后续将添加键盘事件,绘图事件,定时事件等等的处理过程。程序比较简单,适合初学者。程序开发环境:win7+qt5.7.0

2017-08-21

Qt登陆界面

这是一个基于Qt的一个登陆界面程序。设计登陆ui的设计和登陆代码编写。仅供参考

2017-08-01

空空如也

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

TA关注的人

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