我所知道的十大常用算法之马踏棋盘算法(深度搜索、贪心思想优化 )

2021-01-18
阅读 13 分钟
4.4k
前言需求今天我们学习的是马踏棋盘算法,我们还是从一个场景里引入看看 马踏棋盘算法也被称为骑士周游问题将马随机放在国际象棋的6×6棋盘Board0~5的某个方格中提示:马按走棋规则(马走日字)进行移动要求:每个方格只进入一次,走遍棋盘上全部64个方格小游戏体验网址:4399:马踏棋盘小游戏一、马踏棋盘问题马踏棋盘问题...

我所知道的十大常用算法之费洛伊德算法(最短路径)

2021-01-11
阅读 10 分钟
4.1k
前言需求今天我们学习的是弗洛伊德算法,我们还是从一个场景里引入看看战争时期,胜利乡有7个村庄(A, B, C, D, E, F, G)有一名邮差需要你的帮忙:从G点出发,分别把邮件分别送到 A, B, C , D, E, F 六个村庄问:如何计算出各村庄到其它各个村庄的最短距离?各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里如我们问...

我所知道的十大常用算法之迪杰斯特拉算法(最短路径)

2021-01-08
阅读 8 分钟
3.3k
前言需求今天我们学习的是迪杰斯特拉算法(最短路径),我们还是从一个场景里引入看看战争时期,胜利乡有7个村庄(A, B, C, D, E, F, G)有一名邮差需要你的帮忙:从G点出发,分别把邮件分别送到 A, B, C , D, E, F 六个村庄问:如何计算出G村庄到 其它各个村庄的最短距离? 1.各个村庄的距离用边线表示(权) ,比如 A – B 距...

我所知道的十大常用算法之克鲁斯尔算法(最小生成树)

2021-01-06
阅读 12 分钟
1.8k
前言需求今天我们学习的是克鲁斯尔算法,我们还是从一个场景里引入看看有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通1.各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里问:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短?一、什么是克鲁斯尔算法?克鲁斯卡尔(Kruskal)算法:用来求加...

我所知道的十大常用算法之普里姆算法(最小生成树)

2021-01-04
阅读 5 分钟
3.9k
前言需求今天我们学习的是普里姆算法,我们还是从一个场景里引入看看有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通1.各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里2.问如何修路保证各个村庄都能连通,并且总的修建公路总里程最短?我们的思路就是尽可能的选择少的路线,并且每条路线最小,保证总...

我所知道的十大常用算法之贪心算法

2020-12-28
阅读 5 分钟
2.3k
前言需求假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区都可以接收到信号那么这个问题我们使用什么方式解决呢?答:贪心算法一、什么是贪心算法贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果...

我所知道的十大常用算法之字符串匹配问题(KMP、暴力匹配)

2020-12-26
阅读 8 分钟
3.6k
前言需求前面讲解了动态规划的思想,今天我们要说的是涉及字符串匹配问题(KMP)现在前来看我们的问题1.字符串 str1 = "BBC ABCDAB ABCDABCDABDE"2.字符串 str2 = "ABCDABD"现在要判断 str1 是否含有 str2, 如果存在,就返回第一次出现的位置, 如果没有,则返回-1那么你觉得你会是怎么做的呢?一、小明同学的思路想法小...

我所知道的十大常用算法之动态规划(斐波那契、妈妈找零钱、小明选物品)

2020-12-23
阅读 10 分钟
2.5k
前言需求本篇学习了解新的算法:动态规划算法,在我们生活中有很多事情可以涉及到一、什么是动态规划算法生活问题介绍假设您是个土豪,身上携带十张钞票,分别是的1、5、10、20、50、100元面值我们的问题是:请你用最少的钞票组合最大的金额根据我们的生活经验,显然可以采取这样的策略:能用100的就尽量用100的,否则尽...

我所知道的十大常用算法之分治算法(解决汉诺塔问题)

2020-12-19
阅读 6 分钟
1.8k
前言需求本篇算法介绍的十大常用算法的:分治算法,那么在前面的一些算法文章中就有分治算法的概念一、什么是分治算法?简单来说字面意思就是‘分而治之’,就是把一个复杂的问题分成两个或者更多的相同或类似的子问题,再把子问题分成更小的子问题这种思想是很多高效算法的基础,如:快速排序、归并排序、博立叶交换等分...

我所知道的十大常用算法之二分查找(非递归)

2020-12-18
阅读 2 分钟
1.7k
前言需求前面我们有一起分享学习过:二分查找算法忘记了的同学小伙伴可以再点击看看,那么我们之前的方式是采用递归的方式今天我们需要学习的是采用:非递归的方式完成二分查找算法一、二分查找算法介绍首先可以让我们回顾一下二分查找算法的一些特点,比如说:是一种在有序数组中查找某一特定元素的搜索算法。1.搜索过...

我所知道数据结构之图(广度优先与深度优先)

2020-12-17
阅读 10 分钟
9.4k
1、前面我们学习到的线性表与树2、线性表局限一个直接前驱和一个直接后续的关系3、树也只能有一个直接前驱、也就是父节点4、我们需要多对多的关系的时候,就需要使用到图

我所知道数据结构之多路查找树:2-3树、B树、B+树、B*树

2020-12-12
阅读 7 分钟
3.5k
前言需求我们上一篇文章中介绍了平衡二叉树,以及为什么会有平衡二叉树?但其实二叉树的操作效率较高,其实也是存在一些问题的我们一般二叉树加载存放到内存中构建成,假如节点比较多(亿:单位)1.构建二叉树时,需要多次进行I/O 操作(海量数据存在数据库/文件中),速度有影响2.节点海量,会造成二叉树高度很大,降低...

我所知道数据结构之平衡二叉树

2020-12-07
阅读 18 分钟
2.4k
1.左子树全部为空, 从形式图所看,更像一个单链表2.查询速度明显降低(因为需要依次比较),不能发挥BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢

我所知道数据结构之二叉排序树

2020-09-25
阅读 14 分钟
1.3k
前言需求介绍给你一个数列(7,3, 10,12,5,1,9),要求能够高效的完成对数据的查询和添加。根据前面我们学习了数据结构:数组、链表、树等等来看看思路吧➢使用数组[数组未排序]优点:直接在数组尾添加,速度快。[数组未排序]缺点:查找速度慢.[数组排序]优点:可以使用二分查找,查找速度快。[数组排序]缺点:为了保证数组有序...

我所知道的算法之哈夫曼编码

2020-09-22
阅读 27 分钟
5.2k
上一篇文章中提到数据结构:哈夫曼树,今天接着学习由哈夫曼提出编码方式,一种程序算法。简称:哈夫曼编码在线转码工具: [链接]一、什么是哈夫曼编码?与哈夫曼树一样,会不会有小伙伴对哈夫曼编码很陌生,有疑惑问题疑惑1.哈夫曼编码是做什么的?有什么用?2.为什么要使用哈夫曼编码?使用别的编码行不行?哈夫曼编码...

我所知道的数据结构之哈夫曼树

2020-09-10
阅读 7 分钟
2.3k
1.给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度1(wpl)达到最小,称这样的二叉树为最优叉树。也称为哈夫曼树(HuffmanTree),还有的书翻译为霍夫曼树。

我所知道的数据结构之线索化二叉树

2020-08-26
阅读 7 分钟
2.2k
这时候我们发现一些问题,一起进行分析看看1.当我们对二叉树进行中序遍历时,数列为{8,3,10,1,14,6}2.6,8,10,14节点的左右指针没有充分利用上3.遍历二叉树时除了使用递归遍历二叉树,那么有没有其他方法呢?4.希望利用各个节点左右指针,直接指向左右节点怎么解决?

我所知道的数据结构之顺序存储二叉树

2020-08-26
阅读 2 分钟
1.6k
前一篇我们学数据结构:树,那么这一篇学习的是的:顺序存储二叉树一、什么是顺序存储二叉树首先先来看看概念:什么是顺序存储二叉树从数据存储来看:[数组]存储方式和[树]的存储方式可以互相转换,即是数组可以转换为树、树也可以转换为数组根据这样的特性就会发现一些特点顺序存储通常考虑完全二叉树!那么什么是完全二...

我所知道的数据结构之树

2020-08-20
阅读 14 分钟
2.1k
前面我们学了不同的数据结构,今天学习的是一种特别的数据结构:树 首先我们思考一下:什么是树呢?为什么我们需要学习这种数据结构呢?一、为什么需要树这种数据结构我们对比之前学习的数据结构,分析看看之前的数据结构有什么特点又有什么缺陷一、数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组...

我所知道数据结构之哈希表

2020-07-22
阅读 6 分钟
1.5k
大家好,我是阿濠,今篇内容跟大家分享的是数据结构之哈希表,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道查找算法之斐波拉契(黄金分割法)查找

2020-04-25
阅读 8 分钟
3.5k
大家好,我是阿濠,今篇内容跟大家分享的是查找算法之斐波那契(黄金分割法)查找,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道查找算法之插值查找

2020-04-22
阅读 3 分钟
5.3k
大家好,我是阿濠,今篇内容跟大家分享的是查找算法之插值查找法,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的查找算法之二分查找法

2020-04-17
阅读 4 分钟
1.6k
大家好,我是阿濠,今篇内容跟大家分享的是查找算法之二分查找法,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的查找算法之线性查找

2020-04-17
阅读 1 分钟
1.3k
大家好,我是阿濠,今篇内容跟大家分享的是查找算法之顺序(线性)查找,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的排序算法之常用对比

2020-04-16
阅读 3 分钟
1.9k
大家好,我是阿濠,今篇内容跟大家分享的是排序算法总结和对比,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的排序算法之基数排序

2020-04-15
阅读 8 分钟
1.8k
大家好,我是阿濠,今篇内容跟大家分享的是排序算法之基数排序,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的排序算法之归并排序

2020-04-12
阅读 4 分钟
1.6k
大家好,我是阿濠,今篇内容跟大家分享的是排序算法之归并排序,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的排序算法之快速排序

2020-04-12
阅读 4 分钟
1.5k
大家好,我是阿濠,今篇内容跟大家分享的是排序算法之快速排序,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的排序算法之希尔排序

2020-04-12
阅读 6 分钟
1.5k
大家好,我是阿濠,今篇内容跟大家分享的是排序算法之希尔排序,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.

我所知道的排序算法之插入排序

2020-04-11
阅读 5 分钟
1.9k
大家好,我是阿濠,今篇内容跟大家分享的是排序算法之插入排序,很高兴分享到segmentfault与大家一起学习交流,初次见面请大家多多关照,一起学习进步.