![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
小小池鱼儿
这个作者很懒,什么都没留下…
展开
-
并查集
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它转载 2017-02-10 12:08:57 · 204 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之平衡二叉树(AVL)及其C实现
大话数据结构学习笔记 - 查找之平衡二叉树(AVL)及其C实现平衡二叉树(AVL树)平衡二叉树(Self-Balancing Binary Search Tree 或Height-Balanced Binary Search Tree)是一种二叉排序树, 其中每一个节点的左子树和右子树的高度差至多等于1. 平衡二叉树是高度平衡的二叉排序树,高度平衡即要么是空树,要么其左子树和右子树都...原创 2018-06-10 15:29:00 · 581 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之二叉排序树(Binary Sort Tree)及其C实现
大话数据结构学习笔记 - 查找之二叉排序树(Binary Sort Tree)及其C实现二叉排序树二叉排序树(Binary Sort Tree):又称为 二叉查找树, 它或者是一个空树,或者是具有下列性质的二叉树若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值它的左、右子树也分别为二叉排序树二叉...原创 2018-06-09 16:38:02 · 436 阅读 · 0 评论 -
大话数据结构学习笔记 - 排序算法及图解以及C实现
大话数据结构学习笔记 - 排序算法及图解以及C实现概述排序概念 假设含有n个记录的序列为r1,r2,...,rnr1,r2,...,rn {r_{1}, r_{2}, ... , r_{n}} , 其相应的关键字分别为 k1,k2,...,knk1,k2,...,kn {k_{1}, k_{2}, ... , k_{n}} , 需确定1, 2, ... , n的一种排列 p1,...原创 2018-06-12 16:43:01 · 537 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之顺序查找、折半查找、插值查找及斐波那契查找
大话数据结构学习笔记 - 查找查找(Searching): 就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)概论概念查找表(Search Table):由同一类型的数据元素(或记录)构成的集合关键字(Key):数据元素中某个数据项的值,又称为键值,用来标识一个数据元素主关键字(Primary Key):若关键字可以唯一的标识一个记录,则...原创 2018-06-05 16:23:35 · 544 阅读 · 0 评论 -
大话数据结构学习笔记 - 图的最短路径之Floyd算法
大话数据结构学习笔记 - 图的最短路径之Floyd算法本文是对网结构最短路径的另一求法,上一节讲的为Dijkstra算法,本节将Floyd算法, 有关于最短路径的讲解也在上一节。Floyd算法算法简介弗洛伊德Floyd算法也是一种在给定的加权图中求最短路径的算法,求的所有顶点到所有顶点的时间复杂度为O(n3)O(n3)O(n^3), 是由1978年的图灵获得者、斯坦福大学计...原创 2018-06-04 20:10:30 · 858 阅读 · 1 评论 -
大话数据结构学习笔记 - 图的最短路径之Dijkstra算法
大话数据结构学习笔记 - 图的最短路径之Dijkstra算法最短路径最短路径是图中的重要问题,对于网图和非网图来说,最短路径的含义也是不同的。由于非网图没有边上的权值,所谓的最短路径,其实就是指两顶点之间经过的边数最少的路径。而对于网图来说,最短路径,是指两顶点之间经过的边上的权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点。当然非网图可以理解为所有边的权值都...原创 2018-06-04 20:09:29 · 1424 阅读 · 1 评论 -
大话数据结构学习笔记 - 图的最小生成树之Kruskal算法
大话数据结构学习笔记 - 图的最小生成树之Kruskal算法Kruskal算法克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法大话数据结构定义 假设 N=(V,{E})N=(V,{E}) N = (V, \{E\})是连通网,则令最小生成树的初始状态为只有n个顶点而无边的非连通图 T={V,{}}T={V,{}} T = \{V, \{\}\}。图中每...原创 2018-05-28 15:46:00 · 1928 阅读 · 0 评论 -
大话数据结构学习笔记 - 图的最小生成树之Prim算法
大话数据结构学习笔记 - 图的最小生成树之Prim算法最小生成树(Minimum Cost Spanning Tree) 即构造连通图的最小代价生成树Prim算法基本思想对于图G而言,V是所有顶点的集合。现在设置两个新的集合U和T, 其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。从所有u∈U,v∈(V−U)u∈U,v∈(V−U)u \in U, v \in ...原创 2018-05-28 10:19:36 · 3918 阅读 · 4 评论 -
大话数据结构学习笔记 - 图的遍历之深度优先遍历和广度优先遍历
大话数据结构学习笔记 - 图的遍历之深度优先遍历和广度优先遍历图的遍历(Traversing Graph):从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历深度优先遍历深度优先遍历介绍深度优先遍历(Depth First Search):也有称为深度优先搜索,简称为DFS。 思想: 从图中某个顶点v出发,访问此顶点,然后从v的未被访...原创 2018-05-28 10:15:10 · 1358 阅读 · 0 评论 -
素数算法吐血总结
扯淡相信很多童鞋在OJ都遇到过关于素数的问题,对于素数相关问题,一般都会给出答案,但是相信并不是所有人能给出最优解,包括本菜鸟,故吐血整理一波,以供学习回顾。素数定义既然都说素数、质数什么的,那么什么是素数呢? 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。大于1的自然数...原创 2017-12-17 22:07:11 · 863 阅读 · 0 评论 -
判圈算法(Flyod、Brent's)
问题如何检测一个链表是否有环?如果有环,如何确定环的起点以及长度?Floyd cycle detection(龟兔算法)龟兔赛跑对于赛道来说,如果赛道中有环,那么速度快的兔子一定会在某个地点追上乌龟,并且兔子所跑的距离减去乌龟所跑的距离,一定是环长度的整数倍。原理假设令龟、兔为指针,并且指向起点位置,兔子每次移动两个节点,乌龟每次移动一个节点。如果两者在起始节点...原创 2017-12-16 19:08:47 · 3714 阅读 · 2 评论 -
线性表之顺序存储结构
线性表零个或多个数据元素的有限序列,线性表中的元素是一对一的关系,除了第一个元素和最后一个元素外,其他元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。线性表的顺序存储结构线性表的顺序存储结构是指将线性表中的元素存放在一组连续的存储单元中,特点是线性表中逻辑相邻的元素,物理存储单元中也是相邻的。顺序表是采用顺序存储结构的线性表。基本操作...原创 2017-12-24 20:33:14 · 839 阅读 · 0 评论 -
线性表之单链表
线性表零个或多个数据元素的有限序列,线性表中的元素是一对一的关系,除了第一个元素和最后一个元素外,其他元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。顺序存储结构指用一段地址连续的存储单元依次存储线性表的数据元素。 优点 - 无需为表示元素间的逻辑关系而增加额外的存储空间 - 随机查询元素,即查询元素的时间复杂度为O(1) 缺点 -原创 2017-12-24 16:29:07 · 151 阅读 · 0 评论 -
经典排序算法
直接插入排序(Straight Insertion Sort)思想:每一趟将一个待排序的记录,按照其关键字的大小向前查找,插入到有序队列的合适位置里,直到所有记录插入完成。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的 //插入排序 /***原创 2017-02-10 12:08:52 · 172 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之散列表查找(哈希表)及C实现
大话数据结构学习笔记 - 查找之散列表查找(哈希表)及C实现概述顺序表查找时,可以使用 ===或 ≠≠\neq 来遍历比较元素与查找值,有相等则查找成功; 有序表查找时, 可以使用<<>>>, 来折半查找,相等时则查找成功. 最终得到元素的存储位置, 但有没有直接通过关键字key得到要查找的记录内存存储位置呢?散列技术是在记录的存储位置和它的关键字之间建立一个...原创 2018-06-10 19:45:19 · 539 阅读 · 0 评论