自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 判断质数和用算数基本定理分解质因数

文章目录摘要质数判断一个数是否是质数分解质因数超级详细的基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要讲解如何判断一个数是质数,和如何对一个数分解质因数。本文是很基础的也很重要的数学知识。质数质数又称为素数,是指大于1的并且除了1和它本身外,没有其他因数的自然数。判断一个数是否是质数假...

2020-02-29 20:13:06 6024 2

原创 二分图

二分图摘要什么是二分图染色法判断二分图匈牙利算法超级详细的基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍二分图的基本概念以及如何用染色法判断二分图,如何用匈牙利算法求二分图的最大匹配。什么是二分图二分图又称作二部图,是图论中的一种特殊模型。…(百度百科)简单来说就是:如果一个图的所...

2020-02-24 21:14:48 2993 2

原创 并查集

并查集摘要什么是并查集并查集的实现摘要本文主要介绍并查集和其效率最高的实现方式。什么是并查集并查集顾名思义,是一种用于处理集合与集合之间查询和合并等操作的数据结构。比如询问两点是否在同一集合,将两个不同集合合并等并查集的实现给出n个点,将其划分为两个集合,查询其中某两个点是否在同一集合内,你会怎么做?简单的方法就是,将同一个集合内的所有点设置一个标记,然后查询两个点的标记是否一样...

2020-02-20 01:46:31 3166

原创 最小生成树问题的两种算法

最小生成树摘要最小生成树的定义Prim算法Kruskal基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍最小生成树以及求最小生成树常用的两种算法,Prim算法和Kruskal算法。最小生成树的定义最小生成树是一个图的总边权最小的极小连通子图Prim算法Prim算法和Dijkst...

2020-02-20 01:04:06 6383 10

原创 图和树的存储方式:邻接矩阵和邻接表

邻接矩阵和邻接表摘要无向图和有向图的区别稀疏图和稠密图邻接矩阵邻接矩阵的初始化邻接矩阵的读入邻接表基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍邻接矩阵和邻接表的实现方式,无向图和有向图的区别,以及稠密图和稀疏图的区别。以及两种存储方式的使用场景。 稠密图使用邻接矩阵存储,稀疏图使用邻接表...

2020-02-17 02:28:17 9287 4

原创 哈希表

本文主要介绍哈希表的定义,并用数组模拟哈希表。

2020-02-15 00:14:24 3423 1

原创 用数组模拟栈和队列

文章目录摘要栈队列摘要之前已经介绍过JAVA中已经实现好的栈和队列,本文主要介绍如何用数组模拟栈和队列。用数组模拟栈和队列的的优点就是快。栈栈的特点是“先进后出”,只能在栈顶进行插入和删除,所以用数组模拟的话,我们只能在数组的末尾进行插入和删除。代码很简单,一看就能明白:public class Main{ static int[] s = new int[100010]; // 栈...

2020-02-14 19:01:06 3688

原创 用数组模拟单链表

文章目录摘要用数组模拟单链表插入遍历摘要本文主要介绍如何用数组模拟单链表。如果有同学没学过数据结构的话,请先了解顺序表和链表的定义。推荐视频:https://www.bilibili.com/video/av31802230用数组模拟单链表我们知道链表是通过指针将所有的结点链接实现的,在此过程中,每创建一个新的结点,都需要给它分配空间,也就是要new一下,而这个操作是很耗时的,另外,链表...

2020-02-13 20:54:32 4446

原创 二分法

二分法摘要整数二分摘要本文主要介绍二分法。二分法是一种精妙的算法,效率贼高,很多复杂的算法都采用了二分优化。二分法用于在单调的序列内快速查找某个值,方法是序列分为两半,判断要查找的值在哪个区间,舍弃另一半,每次查询都会舍弃序列的一半,所以时间复杂度是log(n)整数二分整数二分就是在一些...

2020-02-11 21:02:35 5293 2

原创 最短路问题的五种算法

本文主要介绍关于图的最短路的五种常用算法和其应用。朴素Dijkstra堆优化DijkstraSPFAFloyd。这几种算法有各自的优势和劣势,适用于不同的场景。另:本篇文章篇幅较长,但难度不大, 建议学习算法的同时,自己手动画图,并模拟算法流程,将会一目了然,所见即所得!一定要画图。一定要刷题。写题的时候一定要注意是不是无向图, 无向图的话建边时要建一来一去两条,如果用邻接表存,数组一定要开足够大,至少是边数的两倍。对于邻接矩阵,要判断重边。邻接表则不需要判断重边。

2020-02-08 17:17:54 10221 10

原创 深度优先搜索(DFS)和广度优先搜索(BFS)

DFS和BFS摘要状态DFSBFS摘要本文主要介绍 深度优先搜索和广度优先搜索,下文皆称为DFS和BFS。DFS和BFS是两种搜索树和图的基本策略,见名知其义, 深搜和广搜,一种往深处搜,一种往边上搜。 DFS常用于暴力搜索所有状态,BFS常用于搜索到达某一状态的最短路径。状态我们将DFS和BFS搜索的东西称为状态, 状态就是一个具体问题的一个解,而将问题的所有状态关联在一起, 就能...

2020-02-06 02:18:53 17588 6

原创 递归

文章目录摘要递归摘要本文将主要介绍递归。递归递归的含义很好理解,就是一个函数调用自身,难就难在如何确定一个题目的递归式,这就需要多刷题了。一个完整的递归函数包含两个部分:递归式递归出口以斐波那契数列为例:int f(int n){ if(n == 1 || n == 2) return 1; // 递归出口 return f(n-1) + f(n-2); // 递归式...

2020-02-03 23:06:23 12907 6

原创 java中sort方法的自定义比较器写法

文章目录摘要对数组排序对集合进行排序对自定义对象数组排序摘要在做一些算法题时常常会需要对数组、自定义对象、集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法。对自定义对象排序时要自己重写比较器,对象数组则调用Arrays.sort(),对象集合则调用Collections.sort()。两个方法默认都是升序,也...

2020-02-02 21:26:37 10950 10

空空如也

空空如也

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

TA关注的人

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