算法笔记
文章平均质量分 91
记录一系列常用的算法 . . .
浪子花梦
江苏淮安人,二十有三,偶然得知编程二字,至此五年有余,日渐憔悴。
展开
-
数据结构树之 “并查集“ 到底有什么用? 一个简单例子快速掌握!
通过树的延伸,我们会发现有许多优秀的算法,今天我们来学习一下什么是 “并查集” . . . 文章参考啊哈算法,度娘 . . .相关树一些文章:1)《算法笔记》—— 堆排序算法( C++实现)2) 二叉搜索树 —— 查找与排序3) 红黑树基本功能 —— C++实现4) 二叉树(链式存储)—— C++实现5) 二叉树(顺序存储)—— C++实现6) 数据结构堆(包含堆排序)有这么简单吗? 其实是真的简单!并查集详解那么什么是并查集呢? 度娘解释如下:并查集,在一些有N个元素的集合应用问原创 2020-07-05 16:01:21 · 1812 阅读 · 1 评论 -
数据结构堆(包含堆排序)有这么简单吗? 其实是真的简单!
前言今天无意中翻了一下以前写的堆排序文章,发现写的也太Low了 . . .所以准备重新写一篇文章来更详细的讲解堆排序,主要参考啊哈算法 和以前的一些资料,希望大家喜欢,今天也是放假的日子,但我还是选择在学校留上几天,希望大家喜欢这一篇文章 ^ _ ^ . . .相关树及C++堆排序一些文章:1)《算法笔记》—— 堆排序算法( C++实现)2) 二叉搜索树 —— 查找与排序3) 红黑树基本功能 —— C++实现4) 二叉树(链式存储)—— C++实现5) 二叉树(顺序存储)—— C++实现原创 2020-07-04 17:24:06 · 1148 阅读 · 1 评论 -
《算法笔记》—— 图 "最短路径" 之 Bellman-Ford 算法
最短路径相关文章:《算法笔记》—— 图 “最短路径” 之 Floyd-Warshall算法、Diljkstra算法上面链接的文章之中有个算法是 Dilijkstra算法,这个算法解决单源最短路径问题,但是它 不能解决带有负权边(边的权值为负数)的图。此文将介绍 Bellman-Ford算法,它完美了解决负权的这个问题,并且此文将介绍对此算法各种的优化操作,比如:使用队列的方式对此算法进行优化 . . ..文章目录Bellman-Ford 算法解析Bellman-Ford 算法优化.原创 2020-05-11 23:44:56 · 10602 阅读 · 16 评论 -
《算法笔记》—— 图 "最短路径" 之 Floyd-Warshall算法、Diljkstra算法
现实之中,我们往往会使用百度地图等一系列的地图软件,当我们选择一个目的地时,这些软件会给我们匹配一个最佳的路线,也就是最近的路线,例如下面这个图:那么这些算法是如何实现的呢 ? 下面我们一起来学习一下吧 . . . ^_^.此文将讲述两个重要的算法,他们分别用于 “多源最短路径” 与 “单源最短路径” 问题 . . . 至于什么是多源什么是单源我们将在下面讲解 . . ..Fl...原创 2020-04-17 15:16:55 · 2071 阅读 · 3 评论 -
《算法笔记》—— 图 "邻接矩阵" 的遍历(DFS、BFS)
此文知识点相关文章与数据结构 —— 图相关的文章有:初探数据结构 —— 图 (邻接矩阵实现)初探数据结构 —— 图 (邻接表实现)与DFS、BFS相关的文章有:《算法笔记》—— “迷宫求解” 之 深度优先搜索(DFS)《算法笔记》—— “迷宫求解” 之广度优先搜索(BFS)文章目录图 —— 邻接矩阵DFS遍历原理BFS遍历原理DFS遍历邻接矩阵源码讲解BF...原创 2020-04-14 22:03:59 · 6078 阅读 · 3 评论 -
《算法笔记》—— "迷宫求解" 之 广度优先搜索(BFS)
迷宫相关算法文章:《算法笔记》—— “迷宫求解” 之 深度优先搜索(DFS)BFS 用到了队列的知识,什么是队列,这里我就不说了 . . .BFS 与 DFS 不一样的是,BFS 是针对于层面上的,一层一层的通过队列来筛选 . . .我们还是以 BFS中的迷宫为例来讲解 BFS的使用.BFS 求解迷宫是将当前点的所有可能性放入队列之中(入队),然后再去掉队列的头部(出队)…例...原创 2020-04-09 14:12:16 · 1119 阅读 · 0 评论 -
《算法笔记》—— "迷宫求解" 之 深度优先搜索(DFS)
何为DFS?简单点来说就是 在某一时刻,列出它的所有可能性,即当下需要干什么 . . .废话不多说,我们以实例来讲解 DFS的使用.我们需要做的求解迷宫的出路,利用DFS来求解 . . .例如下图所示:我画出的就是一种可以解出迷宫的路线,当然利用DFS可以解出更多的路线,此文章不会深究…下面我会将起点称之为 A,终点称之为 B.我们很容易的知道,当A每走一步时,他都有四个方...原创 2020-04-09 10:52:30 · 1257 阅读 · 0 评论 -
《算法笔记》—— 数组模拟链表
三个月前买了一本《啊哈!算法》听说很简单,所以就以此书来对算法进行一个入门 . . .从现在开始,我会更新一些好玩的算法,大家多多支持,虽然也没多少人看 . . ....原创 2020-04-07 22:05:01 · 361 阅读 · 0 评论 -
《算法笔记》—— 解决 "排列组合问题" 递归的灵活运用
深知自己的算法特别菜,所以想在算法这方面多下工夫现在被各种专业课支配着,但每天都会抽出一点时间来学习算法 (^ - ^)相信大家都了解 * 汉诺塔 * 这个问题,我当时学的是云里雾里的(泪目)……递归递归简单点说就是自己调用自己,有规律性的调用。多说无益,直接正题排列组合假如我们我abc这三个字符,我们将它所有的组合都列举出来:a b ca c bb a cb c a...原创 2020-02-19 18:50:55 · 575 阅读 · 0 评论 -
《算法笔记》—— 堆排序算法( C++实现)
走过路过的哥哥姐姐们,点个赞,评论一句鼓励我的话,再走呗 ~ ^ _ ^数据结构 —— 堆堆实际是一种完全二叉树,分为大顶堆 和小顶堆:大顶堆:子结点 < 父结点小顶堆:子结点 > 父结点注意: 兄弟之间是不区分大小的下面图所示的是一种大顶堆结构:本文章将已大顶堆来实现堆排序因为是一种完全二叉树,所以我们可以用一个 动态数组 来实现 堆本文章一些有关...原创 2020-01-17 16:55:36 · 511 阅读 · 0 评论 -
《算法笔记》—— 基数排序
基数排序基数排序的本质实则是桶排序,对每一位基位数进行一次排序例如:基数排序中,我们将借助链表来当作桶其中需要说明的内容,在代码中写好注释:#include <iostream>#include <list> // 使用C++ 封装好的模板类#include <algorithm> // 算法库using namespace std;...原创 2020-01-09 17:48:45 · 216 阅读 · 0 评论 -
《算法笔记》—— Fibonacci 查找数据
我们都知道插值查找适用于均匀分布的容器,如果不知道可以点击 顺序、折半、插值查找 进行了解。如果不是均匀分布且有效查找怎么办呢?Fibonacci 查找可以解决这一问题。Fibonacci 查找首先让我们了解一下什么是黄金比例,黄金比例值为 0.618,自然界中很美的比例值,给人以视觉的享受。Fibonacci 随着数列的增大,一前一后元素的比例无限接近于 0.618。重要说明已...原创 2019-12-25 00:08:33 · 269 阅读 · 1 评论 -
《算法笔记》—— 顺序、折半、插值查找
查找方式顺序查找折半查找插值查找(折半查找强化)顺序查找顺序查找是最简单也是最效率最低的查找方式int SequentialSearch(int* arr, int size, int findValue){ for(int i = 0; i < size; i++) { if(arr[i] == findValue) {...原创 2019-12-22 18:20:20 · 242 阅读 · 3 评论 -
《算法笔记》—— 七大排序算法(冬至快乐)
冬至快乐 ^ _ ^今天脑子有点乱不知道要干什么,就把自己所学的几种排序算法写一下吧……------七大排序-----选择排序冒泡排序(优化写法)快速排序插入排序希尔排序(插入排序优化)桶排序归并排序选择排序在顺序排序基础上进行了改进,使得每一次只交换一次void SelectionSort(int* arr, int size) // size 为数组的大小...原创 2019-12-22 15:54:41 · 405 阅读 · 1 评论