![](https://img-blog.csdnimg.cn/20200308131754437.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
【数据结构与算法】
以后可能的话,再重新学吧
冉筱
不好高骛远,不急于求成
展开
-
十大排序算法简单讲解
十大排序算法最最通俗易懂的动态图外加简单介绍,具体代码请看下一部分的讲解自己慢慢更新:如下:十大排序算法的复杂度一,冒泡排序嗯,先说一下我对这算法的简单理解吧,冒泡排序很形象;在这组数组中将前后两个数进行比较,然后看需要的是升序还是降序,个性化的选择把那个放在前面;然后在遍历n边,后就排序好了优点,比较好想,缺点,时间复杂度太大,见上表#inc...原创 2019-09-06 22:45:39 · 228 阅读 · 2 评论 -
java版排序算法之选择,冒泡,折半
class ArrDemo5{ public static void main(String[] args){ int[] arr = {4,34,56,65,78,87,98,100}; //int index = getIndex(arr, 56); //System.out.println(index); //bubbleSort(arr); //selectS...原创 2019-09-29 23:55:16 · 93 阅读 · 0 评论 -
最小生成树,克鲁斯卡尔算法入门。
目录一、概述二、kruskal算法一、概述恩,最小生成树问题顾名思义,概括来说就是路修的最短。接下来引入几个一看就明白的定义:最小生成树相关概念:带权图:边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。最小生成树(MST):权值最小的生成树。最小生成树的性质:假设G=(V,E)是一个连通网,U是顶点V...原创 2019-08-10 16:34:12 · 234 阅读 · 0 评论 -
并查集基础总结
首先,先说下感悟吧,最近几天好像找到点感觉,算法应该是先学会敲,再开始学,这样的效果就比较好。并查集目前最通俗易懂的。https://www.cnblogs.com/xzxl/p/7226557.html先截取一段,你看看这通过故事的手法给并查集讲的多么那啥,老少易懂,妇孺皆知。并查集由一个整数型的数组和两个函数构成。数组pre[]记录了每个点的前导点是什么,函数find是查找,函数j...原创 2019-08-10 22:33:24 · 116 阅读 · 0 评论 -
二叉树 (一)之各种原理理论概述
想学好,就得先把知识打牢,以下是树这章的核心知识点;目录1 重点概念2 树3 二叉树 4平衡二叉树链接 5红黑树链接(这个暂时理解不了,先不学那么深)1 重点概念1.1 结点概念结点是数据结构中的基础,是构成复杂数据结构的基本组成单位。1.2 树结点声明本系列文章中提及的结点专指树的结点。例如:结点A在图...原创 2019-08-12 09:43:06 · 493 阅读 · 0 评论 -
字符串匹配
以前也写过字符串匹配的博客,不过当时纯粹为了做题而做题,今天就自己总结总结;普通的字符串匹配,一般有两种算法可以解决。一,暴力匹配算法原理很简单如果主串和子串,相等,就i++;j++(两个代表当前字符串在哪);如果不相等就i就回溯;i=i-j+1;相等于i不变,然后移动主串i;而kmp算法这方面则相反。如果还理解不了就看数据结构严蔚敏版的关于暴力的配图比较通俗易懂。简而言之:...原创 2019-08-16 17:19:22 · 129 阅读 · 0 评论 -
二叉树(2)之二叉树的基本操作(遍历,找节点个数)
最难的也就是层次遍历:各种遍历函数其实就是各种递归。叶子节点,深度,总节点,掌握性质都不难‘’层次遍历层次遍历,就是从上到下一层一层的遍历例如:思路:上代码:层次遍历暂时没用真正的队列不够原理上是一样的。(以后能力提高了在搞)#include<algorithm> #include<iostream>#include<...原创 2019-08-13 09:37:23 · 251 阅读 · 0 评论 -
最短路——Floyd - Warshall核心算法的理解
首先,谁能告诉我弗洛伊德的核心算法是什么? //核心代码 for(int k = 1 ; k <= n ; k ++) { for(int i = 1 ; i <= n ; i ++) { for(int j = 1 ; j <...原创 2019-08-17 15:15:30 · 228 阅读 · 0 评论 -
最短路Dijkstra算法讲解
还是以举例子为主吧,部分图片来自于网络。在下边的学习中,主要是通过松弛操作让最短路的值进行替换。dijie斯特拉指定一个点(源点)到其余的各个顶点的最短路径,也叫做“单源最短路径”。例如下图中的1号顶点到2,3,4,5,6顶点的最短路径:在这里要和flody算法一样,在这儿也需要用二维数组e来存取顶点之间和边之间的关系,数值如下:在这儿我们还需要用一个一维数组dis来...原创 2019-08-17 23:01:42 · 310 阅读 · 0 评论 -
三种最短路的总结
三种最短路算法的对比 floyd dijkstra Bellman-ford 空间复杂度 o(N^2) 0(M) 0(M) 时间吗复杂度 O(N3) O((M+N)logN) O(MN) 适用情况 稠密图 稠密图 稀疏图 负权边 不可以 不可以 可以 f...原创 2019-08-19 10:05:32 · 171 阅读 · 2 评论 -
图论】(单源最短路径)Bellman-Ford算法
Dijkstra 算法虽然好,但是他不能解决带有负权边的(边的权值为负数)的图,下面我们就来说一下几乎完妹求最短路径的算法Bellman-ford。Bellman-ford算法也非常简单,核心代码只有几行,并且可以完美的解决带有负权的图,先来看看这个核心代码吧for(int k = 1 ; k <= n - 1 ; k ++){ for(int i = 1 ; i < ...原创 2019-08-18 23:48:45 · 1581 阅读 · 1 评论 -
二叉搜索树,超强实用讲解
目录 一,概述 二,HDU1710(Binary Tree Traversals) 三, HDU3791-二叉搜索树 四,hd3999 五,比较全的模板一,概述 时间急迫,希望能在半个月把各个算法入门了,在一个专题一个专题的搞,二叉树也搞几天了,...原创 2019-08-13 17:15:41 · 476 阅读 · 0 评论 -
sort函数,我用总是莫名其妙的错
好像不能和#Include<stdio.h>1.要使用sort函数只需用#include 即可使用,语法描述为:sort(begin,end),表示一个范围,例如:#include<bits/stdc++.h> //万能头文件using namespace std;int main() { int a[20]={2,4,1,23,5,76...转载 2019-07-19 15:06:31 · 1083 阅读 · 0 评论 -
各种插入函数收集整理
插入排序void InsertSort(int arr[], int length) //无哨兵的插入排序 { for(int i=1; i<length; i++) { if(arr[i] < arr[i-1]) { int temp = arr[i]; for(int j=i-1; j>=0 && arr[j]>temp...原创 2019-07-19 15:08:14 · 543 阅读 · 0 评论 -
dfs,bfs入门精讲、、、
dfs不能求最优解#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>using namespace std;const int maxn=6;boo...原创 2019-07-21 16:06:58 · 305 阅读 · 2 评论 -
计算几何模板(全)
**#include#include <math.h>#include#define eps 1e-8#define zero(x) (((x)>0?(x):-(x))<eps)#define pi acos(-1.0)struct point{double x, y;};struct line{point a, b;};struct point...原创 2019-07-25 16:32:51 · 789 阅读 · 2 评论 -
宽度优先搜索第n遍
最近有种少年痴呆的感觉,停好几次车然后每次走的时候,发现自行车不见了,后来在同伴惊愕与无语的表情中想起,原来是停到别的地方去了,但是还好,这几次欠的饭钱准时还了,哈哈,今天把这道入门bfs小题研究的透透的,以后再忘,估计凑几眼,也能想起来。迷宫的最短路径给定一个大小为NM的迷宫。迷宫由通道和墙壁组成,每一步可以向相邻的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。如果不能到达,输出...原创 2019-07-30 16:42:03 · 101 阅读 · 0 评论 -
大数模板
大数模板1,优点比较万能,缺点代码太长。核心代码转发自https://blog.csdn.net/ZscDst/article/details/72655314参考刘汝佳算法竞赛入门经典一书,还有C++实现BigInteger这篇博客。黄线中内容来自上面那篇博客。已重载的运算符运算符类型 运算符双目运算符 +(加), -(减), *(乘), /(整除), %(取模)关系运算符 ==(...原创 2019-07-26 16:09:04 · 98 阅读 · 0 评论 -
kmp算法 入门题
看了好多理解的博客就这个让我理解的最透彻 https://www.cnblogs.com/yjiyjige/p/3263858.html 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): ...原创 2019-08-06 10:25:26 · 146 阅读 · 0 评论 -
斐波那契数列介绍
Q:斐波那契数列为什么那么重要,所有关于数学的书几乎都会提到?A:因为斐波那契数列在数学和生活以及自然界中都非常有用。1. 斐波那契数列 概念引入斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。数学上,斐波那契数列以递归的形式进行定义:F0=0 F...原创 2019-07-19 10:18:41 · 1616 阅读 · 0 评论