- 博客(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
453
原创 算法:什么是数飞机问题?
最近小多米一直爬在窗子边抬头看着天空,指着空中飞机留下的白色痕迹,激动的手舞足蹈的给我说:飞机,飞机。其实每架飞机的起飞和降落都有固定的时间,假定已经知道了每架飞机起飞和降落的时间列表,小多米想知道天空同时最多有多少架飞机?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“数飞机”问题。“数飞机”问题规则如下:已知飞机的起飞和降落时间的列表,用序列 interval 表示。如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权小多米需要计算出天上同时最多有多少架飞机?样例1如下:.
2022-02-25 18:15:00
1021
原创 可视化讲解:什么是分糖果问题?
前言概念介绍在上一节“算法:什么是分糖果问题?”中我们已经详细的描述了分糖果问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解首先初始化每个人一个糖果,然后这个算法通过遍历两遍来解决这个问题。第一遍我们从左向右进行遍历。如果右边的小朋友的等级高,就给右边的小朋友加一个糖果,这样保证从左到右这个方向上高等级的小朋友分的糖果多。再从右向左遍历一遍,如果相邻两个小朋友左边的等级高,而左边的糖果又少的话,则左边小朋友分的糖果数为右边小朋友.
2022-02-25 18:00:00
891
原创 算法:什么是分糖果问题?
小多米已经快到了能吃糖果的年纪了。周末,小多米和小区的小朋友们玩石头剪刀布游戏,规定:谁赢的次数多,谁的得分就高,然后按照评分来个小多米和其他小朋友分糖果,并且保证每个小朋友都至少得到一颗糖果(不给就随时哭给你看,手动狗头)。小多米需要统计出最少需要准备多少颗糖果?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“分糖果”问题。“分糖果”问题规则如下:有 N 个小孩站成一列。每个小孩有一个评级。给定数组 ratings 代表这些小孩的评级。每个小孩至少得到一颗糖果。评级越高的小孩可以比他.
2021-04-15 13:46:14
2068
原创 可视化讲解:什么是跳跃游戏问题?
前言概念介绍在上一节算法:什么是跳跃游戏问题?中我们已经详细的描述了跳跃游戏问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解我们可以将该问题转换成求最大距离问题。以输入[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
254
原创 算法:什么是跳跃游戏问题?
小多米一转眼已经快一岁了,虽然他现在还不会走,但是已经有种跃跃欲试的想跳的冲动了。现在小多米想知道经过有限的步骤,能否从这头跳到那头?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“跳跃游戏”问题。“跳跃游戏”问题规则如下:给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。小多米需要计算出能否到达数组的最后一个位置?样例1如下:输入:[2,3,1,1,4]输出:true解释:从位置0到.
2021-04-15 13:42:08
703
原创 每日备忘工具-日程清单(二)
做该工具的初衷不忘初心,方得始终。在每日备忘工具-日程清单(一)这篇文章中,我已经详细阐述了做该工具的初衷。为了继续实现这个初衷,我在春节期间针对该工具又进行了完善。适用人员办公室文员秘书学校教师财务人员公司行政等等已完善的功能完善日程记录的入口添加当前日程的分组功能(今日任务、7日内任务、一月内任务)本地化记录日程及日程当前状态添加日程当前状态(完成、进行中、延期)置灰暂未实现的功能(包括“清除所有日程”、“开机启动”、“常驻任务栏”)效果主页面添加当
2021-04-14 18:01:24
164
原创 每日备忘工具-日程清单(一)
做该工具的初衷做为一个程序员,每天要面对的工作项实在是太多太杂了比如日常和产品经理开会讨论需求、和开发人员讨论方案、和测试人员对接bug、部门内部协助、跨部门协助、对接客户等等。还要随时接收来自领导的工作安排,如果不及时定位记录每天的工作项,那遗漏些工作那就没法避免了。当领导问你某项工作完成的怎么样时,估计你就是这种表情为了在繁忙的工作中不遗漏任何工作项,我就做了这个小工具,方便安排梳理每天工作内容适用人员办公室文员秘书学校教师财务人员公司行政等等已完成功
2021-04-14 17:57:49
285
1
原创 可视化讲解:什么是车队问题?
前言概念介绍在上一节“什么是车队问题?”中我们已经详细的描述了车队问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解车队问题解决的关键在于使用一个标准来衡量一辆车能否追上另外一辆车。由于各个车辆的初始位置不同,并且各自的速度也不同,那么可以考虑的只有时间了。所以我们先计算出在不考虑车队合并的情况下,各辆车到达终点的时间。不难理解的是如果一辆车离终点近,并且到达终点花的时间长,那么它的速度就相对慢;如果一辆车离终点远,但是它到达终点花的.
2021-04-14 17:51:44
295
原创 算法:什么是车队问题?
最近小多米喜欢玩各种各样的玩具车,有的玩具车的动力足跑得快,有的玩具车动力小跑的慢。小多米就很好奇,想知道怎么样做两个玩具车才能同时到达目的地。为了帮助小多米解决这个问题,今天我们就来看看算法领域的“车队”问题。“车队”问题规则如下:N辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着.
2021-04-14 17:49:53
429
1
原创 可视化讲解:什么是任务计划问题?
前言概念介绍在上一节“算法:什么是任务计划问题?”中我们已经详细的描述了任务计划问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理注意在执行两个“相同的任务”之间,必须至少有n个单位时间,此时CPU不能执行该任务,只能执行其他任务或者不工作。原理讲解假设最大任务执行次数为a,该任务编号为A,我们不考虑其他任务,其需要的等待时间是(a - 1) * n。除去编号为A的任务,假设还有最大任务执行次数为b,该任务编号为B的任务。该任务中的.
2021-04-14 17:47:12
271
原创 算法:什么是任务计划问题?
最近小多米喜欢做各种各样的任务计划,但是这么多任务在一起,她就头大不知道该先做哪个?也不知道怎么才能以最短的时间完成这些任务?为了帮助小多米解决这个问题,今天我门就来看看算法领域的“任务计划”问题。“任务计划”问题规则如下:给定一个字符串,表示CPU需要执行的任务。 这个字符串由大写字母A到Z构成,不同的字母代表不同的任务。完成任务不需要按照给定的顺序。 每项任务都可以在一个单位时间内被完成。 在每个单位时间,CPU可以选择完成一个任务或是不工作。但是,会有一个非负的冷却时间“n”,表示在执行两个.
2021-01-08 14:11:34
388
2
原创 可视化讲解:什么是小行星的碰撞问题?
前言概念介绍在上一节“算法:什么是小行星的碰撞问题?”中我们已经详细的描述了小行星碰撞问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理注意对于每个小行星,绝对值表示其大小,符号表示其移动方向(正代表右,负代表左)如果两颗小行星相遇,则较小的小行星会爆炸原理讲解第一次,来了一颗小行星A,其大小为5。由于现在只有一颗小行星,所以它不会和任何行星碰撞,行星们处于稳定状态。此时效果如下图。第二次,来了一颗小行星B,其大小为2。由于小行.
2021-01-05 13:04:39
310
原创 算法:什么是小行星的碰撞问题?
最近,小多米突然对天文学产生了兴趣,一直在问什么是小行星?小行星会不会发生碰撞?看着小多米兴致盎然的样子,我明白现在是时候考验下她小行星到底会不会碰撞了?小行星的碰撞规则如下:给定一个整数数组,代表一行小行星。对于每个小行星,绝对值表示其大小,符号表示其移动方向(正代表右,负代表左)。 每个小行星以相同的速度移动。返回所有碰撞发生后小行星的状态。 如果两颗小行星相遇,则较小的小行星会爆炸。 如果两者的大小相同,则两者都会爆炸。 沿同一方向移动的两颗小行星永远不会相遇。小多米需要计算出给定的小行星们.
2021-01-05 13:01:33
396
原创 可视化讲解:什么是棒球游戏问题?
前言概念介绍在上一节“什么是棒球游戏问题”中我们已经详细的描述了棒球游戏问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解第一回合,史蒂夫得了5分,小多米在记分板上写上了5。当前回合史蒂夫得了5分,总计得5分,此时效果如下图。第二回合,史蒂夫得了2分,小多米在记分板上写上了2。当前回合史蒂夫得了2分,总计得5+2=7分,此时效果如下图。比赛依旧在紧张的进行中,裁判突然发现上一回合史蒂夫犯规了。裁判判定史蒂夫第二回合分数无效,取消.
2021-01-05 13:00:09
198
原创 算法:什么是棒球游戏问题?
最近,社区准备举行棒球比赛,小多米积极报名参加了志愿者,帮助比赛记录分数。这是小多米第一次报名参加社区活动,第二天一大早,她就去接受记录分数的培训了。下午,小多米回到家,没有了出门时的兴高采烈,脸上多了些愁容。问了才知道,原来记分规则她听明白了,但是总分怎么算还不知道。棒球比赛记分规则如下:给定一个字符串数组,每一个字符串可以是以下4种中的其中一个:整数 (一个回合的分数): 直接表示这回合你得到的分数。“+” (一个回合的分数): 表示这回合你获得的分数为前两个有效分数之和。“D” (一个.
2021-01-05 12:57:08
202
原创 可视化讲解:什么是宠物收养所问题?
前言概念介绍在上一节什么是宠物收养所问题中我们已经详细的描述了宠物收养所问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理注意:同一时刻呆在收养所中的要么全是宠物,要么全是领养者。原理讲解第一天,小多米的宠物收养所开门大吉,邻居小王把自己的宠物大黄送到收养所。小多米忙前忙后的给小宠物清洗直到夜晚才用自己的“神奇公式”给大黄编上了特点值5挂到脖子上;此时收养所里有1只宠物,0个领养者,领养者对宠物的不满意度为0。具体效果如下图。第二天,邻居如.
2020-12-17 12:32:56
277
原创 算法:什么是宠物收养所问题?
最近,小多米准备开一间宠物收养所。这个收养所就只提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。但是呢,小多米很担心领养了自己宠物的领养者对领养的宠物不满意。于是呢,她自己发明了一个特殊的公式,用来算出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而她也给每个在收养所的宠物一个特点值。这样一来,她通过统计就很容易知道宠物领养者对自己领养的宠物满意度,也能够很方便的处理整个领养宠物的过程了。宠物收养所总是只会有两种情况发生:被遗弃的宠物过多或者想要收养宠物的人太多
2020-12-17 12:28:09
335
原创 可视化讲解:什么是八皇后问题?
前言概念介绍1. 八皇后问题起源八皇后问题(英文:Eight queens),是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。问题描述:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。请问一共有多少种摆法?原理讲解由于篇幅限制,我们将八皇后问题简化为4皇后问题来讲解其原理(八皇后问题和4皇后问题的原理是一致的)第一步,我们从第一行开始,遍历第一行中所有的列,找到第一.
2020-12-09 19:33:56
2345
原创 可视化讲解:什么是汉诺塔问题?
前言概念介绍1. 汉诺塔问题起源汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从上往下从小到大顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘,只能移动在最顶端的圆盘。有预言说,这件事完成时宇宙会在一瞬间闪电式毁灭。也有人相信婆罗门至今仍在一刻不停地搬动着圆盘。当然这个传说并不可信,如今汉诺塔更多的是作为一个玩具存在2.什么是汉诺塔问.
2020-12-01 12:47:14
4635
原创 可视化讲解:什么是拉丁方阵问题?
前言概念介绍1. 基本概念拉丁方阵(英语:Latin square)是一种 n × n 的方阵,在这种 n × n 的方阵里,恰有 n 种不同的元素,每一种不同的元素在同一行或同一列里只出现一次。(注:来源百度百科)2.相关历史据说普鲁士的腓特列大帝曾组成一支仪仗队,仪仗队共有36名军官,来自6支部队,每支部队中,上校、中校、少校、上尉、中尉、少尉各一名。他希望这36名军官排成6×6的方阵,方阵的每一行,每一列的6名军官来自不同的部队并且军衔各不相同。令他恼火的是,无论怎么.
2020-11-11 12:19:56
1934
原创 可视化讲解:什么是魔术师发牌问题?
前言概念介绍1. 基本简介一位魔术师掏出一叠扑克牌,魔术师取出其中13张黑桃,洗好后,把牌面朝下。魔术师说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中数1,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌。魔术师第二次数1,2,将第1张牌放到这叠牌的下面,将第2张牌翻开,正好是黑桃2,也把它放在桌子上。魔术师第三次数1,2,3,前面2张牌放到这叠牌的下面,取出第3张牌,正好是黑桃3,这样依次将13张牌翻出,全部都准确无误。求解:魔术师手.
2020-11-03 12:43:48
1798
原创 可视化讲解:什么是约瑟夫环?
前言概念介绍1. 基本概念约瑟夫问题,有时也称为约瑟夫斯置换,是一个计算机科学和数学中的问题。在计算机编程算法中,类似问题被称为约瑟夫环,又称丢手绢问题。2. 问题来历据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀.
2020-10-26 12:50:28
3849
原创 程序员代码之外的生存指南
作为程序员,你想的最多的是什么?程序员的工作中主要就是和代码打交道,一般程序员不是在写bug,就是在改bug(谁让bug都是他们自己写的)。程序员想的最多的就是如何提高自己的技术能力?如何能提高自己的编码水平,写出优雅的代码?如何能提高薪资待遇?(这个不管哪个职业都想吧)诚然,“代码”是程序员的生存法宝。但是,作为一个人仅仅只会写代码,想要生活质量再上一个层次,那也是很难的。代码之外的生存指南最近在看了一本书叫《代码之外的生存指南》,一位美国程序员写的。看书名就知道,这是一本和程序员生存
2020-09-26 11:36:00
419
原创 递归是如何用栈来实现的?
前言概念介绍栈的基本概念和原理我们已在“文章链接”中做过具体说明,下面我们主要讲讲递归算法什么是递归?百度百科上的解释如下:程序调用自身的编程技巧称为递归;一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件满足时,递归返回;当递归条件不满足时,递归前进;递归的目的通常是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解递归的通俗解释可能你看了递归的定义后还是不明白,那就举个例子说明下:孔夫子说“三十而立”,你看了可能就在想这个.
2020-09-05 14:02:17
13750
10
原创 可视化讲解:什么是BF算法?
前言概念介绍字符串:由零个或多个字符组成的有限序列空串:零个字符的串空格串:只包含空格的串空串和空格串的区别空格串是有长度的,并且可以不止一个空格空串是没有长度的子串:串中任意个数的连续字符组成的子序列主串:包含子串的串子串在主串中的位置:子串的第一个字符在主串中的序号串的存储结构顺序存储结构链式存储结构BF算法:Brute-Force算法,是一种简单朴素的模式匹配算法,常用于在一个主串S内查找一个子串T的出现位置原理讲解我们以主串为“.
2020-07-26 07:43:08
2444
原创 不知道队列有什么用?可视化动图带你一步步讲解
前言概念介绍队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表队列是一种先进先出(First In First Out)的线性表,简称FIFO队列中允许插入的一端称为队尾,允许删除的一端称为队头队列两种存储方式顺序存储链式存储队列的2种操作方式入队操作出队操作原理讲解我们以[12 8 3 24 21]这个队列为例说明队列的顺序存储的实现原理在未作任何操作时,效果如下图入队操作执行入队操作,会从队尾插入一个随机元素66.
2020-07-13 10:21:18
697
原创 可视化栈操作
前言概念介绍栈(stack)是限定仅在表尾(即栈顶)进行插入和删除操作的线性表栈的2种操作方式插入操作,叫做进栈,也叫压栈、入栈删除操作,叫做出栈,也叫弹栈栈的2种存储方式顺序存储链式存储原理讲解当栈中只有9和12这2个元素时,效果如下图进栈操作我们插入一个元素20,效果如下图出栈操作对于栈来说,出栈只能将栈顶元素删除。因此,执行一次出栈动作,就会删除掉栈顶元素20,效果如下图至此,栈的实现原理讲解完毕栈的优缺.
2020-07-08 12:37:05
567
原创 还有2天就高考,当年你是如何选择程序员这条路的?
前言今天距离2020年高考还有2天的时间,回想当年我参加高考到现在已经过去了10年了。那么这10年我是如何一步一步走上程序员这条路的?前4年给了大学生涯遥想当年高考报志愿时,我选择了计算机科学与技术、通信工程、土木工程、电气与自动化等相关专业。当时那几年土木工程还很火(难道应该08年的4万亿刺激)。阴差阳错最终进入了电子信息工程。大三偶然参加了学校组织的智能车循迹大赛(应该是叫这个名字吧?),当时使用的是C语言写的单片机程序。从那个时候开始慢慢的接触程序设计(难道我从那个时候开始就有了做程序员的想法
2020-07-05 09:22:17
230
原创 基于QT实现的可视化单链表
前言概念介绍线性表的基本概念已经在上节可视化线性表之顺序存储过程中讲解,下面我们主要讲解线性表的链式存储原理。原理讲解我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明线性表的链式存储的实现原理在未作任何操作时,效果如下图获取元素我们获取一个值为6的元素,我们会从头元素12开始依次往后遍历直到找到值6的元素(如果整个线性表遍历结束没有找到目标值,则返回空)效果如下图删除元素随机删除位置2的元素,此时该元素值为3。删掉该元.
2020-06-29 19:37:21
1886
6
原创 可视化线性表之顺序存储过程
前言概念介绍线性表:零个或多个数据元素的有限序列线性表两种存储方式顺序存储链式存储线性表的四个操作方式获取元素设置元素插入元素删除元素原理讲解我们以[12 8 3 24 21 6 11 15 22 9]这个序列为例说明线性表的顺序存储的实现原理在未作任何操作时,效果如下图获取元素随机获取一个下标6的元素,会得到返回值11,效果如下图设置元素随机设置一个下标2的元素值为28,会修改下标为2的原来元素值,效果如下.
2020-06-26 09:47:01
323
原创 快速排序算法的发明者霍尔
霍尔介绍霍尔 (Sir Charles Antony Richard Hoare) 是一位英国计算机科学家,他也是著名的快速排序算法的发明者。他出生于斯里兰卡,1956年毕业于牛津大学。然后的两年里他服役于英国皇家海军,主要工作任务是研究俄国的现代军事,并因为这个原因开始学习俄语。在他结束服役后,他以研究生的身份进入莫斯科大学主攻计算机翻译。在莫斯科学习的一年中,因为偶然的机会他为参加展览的公司Elliott Brothers充当翻译。当他回国后,这家公司立即聘用了他,因为霍尔会俄语的缘故,公司还为..
2020-06-26 09:30:43
5793
2
原创 程序员的悲哀
程序员是在吃青春饭?是真的!作为一个程序员,现在的社会给我的感觉程序员就是在吃青春饭。先不说社会上时不时爆出“程序员35岁后被裁员”、“程序员35岁后的出路”的新闻,就说“程序员猝死”的话题也是频频爆出。程序员到底是不是在吃青春饭,估计只有身在这个行业里的人感受最深吧。既然明知程序员是在吃青春饭,那我们为什么还毅然的投身在这个行业里呢?因为梦想着用技术改变世界?是的。因为程序员工资相对较高?是的。不同的人有不同的原因,但是程序员内心中大概都有用自己的技术改变世界的初衷。程序员给大家的感觉都是木讷
2020-06-22 18:52:18
301
原创 可视化基数排序算法
前言概念介绍概念介绍基数排序是非比较型整数排序算法它将整数按位数切割成不同的数字,然后按照每个位数分别比较原理讲解我们以[12 8 3 24 21 36 11 15 32 9]这个序列为例说明基数排序算法的实现原理当未开始排序时,此时效果如下图我们建立下标为0-9的十个数组用于存放数据,此时效果如下图首先我们以未排序序列个位上的数字为基数。开始遍历,将第一个元素12,放到下标为2的数组中。此时效果如下图继续遍历,将第二个元素8,放到下标为8的数组中。此时.
2020-06-20 20:42:49
316
原创 可视化桶排序算法
前言概念介绍概念介绍桶排序是计数排序的升级版它利用函数的映射关系,将待排序元素分到有限的桶里,然后桶内元素再进行排序(可能是别的排序算法),最后将各个桶内元素输出得到一个有序数列原理讲解我们以[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
314
原创 计数排序算法是如何计数的?
前言概念介绍计数排序算法是一个非基于比较的排序算法,故在排序的过程中不存在元素之间的比较和交换操作计数排序算法是一种以空间换取时间的做法,所以在一定范围内的整数排序时,它是快于任何比较排序算法原理讲解我们以[1 7 8 7 9 8 10 4]这个序列为例说明计数排序算法的实现原理当未开始排序时,效果如下图先找到待排序序列中最大值10和最小值1,此时效果如下图新建一个长度为N=最大值10-最小值1+1=10的数组,新数组中值中值均为0,此时效果如下图开始遍.
2020-06-15 17:41:26
468
原创 快速排序算法究竟有多快?
如需转载请标明出处:https://blog.youkuaiyun.com/zhuzi9前言概念介绍快速排序算法是对冒泡排序算法的一种改进通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列原理讲解我们以[2 17 17 24 34 41]这个序列为例说明快速排序算法的实现原理未开始排序算法之前,此时效果如下图准备开始排序之.
2020-06-15 17:31:11
677
原创 可视化归并排序算法
如需转载请标明出处:https://blog.youkuaiyun.com/zhuzi9QQ技术交流群:594200841前言概念介绍归并排序算法是建立再归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用归并排序的两种实现方式自上而下的递归自下而上的迭代原理讲解以[11 41 45 42 36 27 40 4]这个序列为例说明归并排序算法的实现原理未开始遍历时,此时效果如下图我们将这个序列的8个元素人为的看成序列[11 41 45 4.
2020-06-09 12:53:44
497
2
原创 可视化希尔排序算法
如需转载请标明出处:https://blog.youkuaiyun.com/zhuzi9QQ技术交流群:594200841前言概念介绍希尔排序是基于插入排序算法的一种更高效的改进版本。它是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越少,当增量减少至1时,整个文件恰被分成一组。此时算法便终止。原理讲解以[41 24 34 2 19 17]这个序列为例说明希尔排序算法的实现原理未开始遍历时,此时效果如下图由上面数组可知
2020-06-06 14:16:58
410
原创 可视化插入排序算法
前言概念介绍取出数组中无序部分的第一个元素,从后向前检查数组有序部分元素,将其插入到一个适当位置,使数组有序部分依然有序。当无序部分最后一个元素放入合适位置时,该数组排序完毕。原理讲解以41 34 19 17 2这个序列为例说明选择排序的实现原理未开始遍历时,此时效果如下图第一次遍历时,我们取出第一个元素41,并假定该元素已经有序。此时有序部分元素为41,无序部分元素为34 19 17 2。效果如下图第二次遍历时,我们取出无序部分第一个元素34,检查有序部.
2020-06-03 13:40:07
541
1
Qt下openGL编程
2017-08-02
《Effective C++》
2017-07-25
hog+svm行人检测算法中D盘的文件
2017-03-29
hog+svm行人检测算法实例源码下载
2017-03-27
将视频文件转换为一帧帧的图片
2017-03-18
msvcr120d.dll
2017-03-11
可视化展示冒泡算法实现效果(高阶版)
2020-05-23
Modbus源码
2017-09-04
Qt事件处理之鼠标处理事件
2017-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人