原文链接:https://github.com/Dev-XYS/Algorithms

Algorithms

本次README修订为算法仓库Algorithms的第100次commit,首先我们庆祝自2016年8月4日本仓库建立以来Dev-XYS在算法学习方面取得的显著进步!

这里有各种算法的C++代码,任何人可以在自己的任何程序中使用,欢迎大家指出代码中的错误以及有待改进的地方。

本仓库内所有代码的授权方式为Unlicense,大家如果使用我的代码开发自己的软件挣了大钱,或是参考我的代码在NOI中得了金牌,我都会很高兴的。使用这里的代码之后,你可以自主选择是否公开源代码。总而言之,你可以把这里的代码当作你自己写的一样,无论怎样使用都是被允许的。但是,我不对本仓库内代码的正确性负责。大家要是使用我的代码开发软件而导致程序崩溃,或是参考我的代码在考试时出错,请不要向我抱怨。如果你愿意,遇到问题可以在Issues中提出来,我们共同解决。我们不赞成Pull Request,因为本仓库主要储存作者已经学习的算法,全部代码均由作者本人负责维护与更新。

以下索引提供了本仓库内算法的中文名,方便大家查找。更新可能有很长时间的延迟,不保证所有算法的名称都在列表中出现。

Index

Contents FileName
AC自动机 Aho-Corasick-Automation
单源最短路径(SPFA) Bellman-Ford(Queue-Optimised)
单源最短路径(Bellman-Ford) Bellman-Ford
使用Edmonds-Karp进行二分图匹配 Bigrpah-Matching(Edmonds-Karp)
普通的二叉搜索树 Binary-Search-Tree
广度优先搜索 Breadth-First-Search
冒泡排序 Bubble-Sort
桶排序 Bucket-Sort
组合数的递推求解 Combination(Recursion)
枚举组合 Combination
基本的复数类 Complex-Number
割点 Cut-Vertex
深度优先搜索 Depth-First-Search
堆优化的Dijkstra算法 Dijkstra(Heap-Optimised)
并查集 Disjoint-Set-Union
最大流Edmonds-Karp算法 Edmonds-Karp
欧拉函数 Euler’s-Totient-Function
有向图的欧拉回路 Eulerian-Tour(Digraph)
拓展欧几里得算法 Extended-Euclid
简单的快速幂 Fast-Exponentiation
树状数组 Fenwick-Tree
所有结点对之间的最短路径(Floyd) Floyd-Warshall
凸包算法(Graham扫描法) Graham-Scan
辗转相除法求最大公约数 Greatest-Common-Divisor
堆排序 Heap-Sort
ISAP算法 Improved-Shortest-Augmenting-Path(Naive)
插入排序 Insertion-Sort
字符串匹配(KMP) Knuth-Morris-Pratt
最小生成树(Kruskal) Kruskal
最近公共祖先(Tarjan) Least-Common-Ancestor(Tarjan)
使用后缀数组求解最长公共子串 Longest-Common-Substring
最长上升子序列(n·log(n)) Longest-Increasing-Subsequence(n·log(n))
倍增法求最近公共祖先 Lowest-Common-Ancestor(Doubling)
朴素的矩阵乘法 Matrix-Multiplication(Naive)
归并排序 Merge-Sort
最小堆 Min-Heap
乘法逆元 Modular-Multiplicative-Inverse
仅支持单点修改的可持久化线段树(维护区间和值) Persistent-Segment-Tree(Sum)
试除法素数测试 Prime-Check(Naive)
线性的素数筛法 Prime-Sieve(Linear)
队列的基本操作 Queue
快速排序的优化版本 Quick-Sort(Extra-Optimised)
快速排序的随机化版本 Quick-Sort(Randomized)
快速排序 Quick-Sort
使用向量叉积判断两个有向线段的时针关系 Segment-Direction
线段树维护区间最大值 Segment-Tree(Maximum)
线段树维护区间最小值 Segment-Tree(Minimum)
线段树维护区间和值 Segment-Tree(Sum)
普通的选择算法 Selection
Eratosthenes素数筛法 Sieve-of-Erotosthenes
指针版的单向链表 Singly-Linked-List(Pointer)
跳表 Skip-List
ST表 Sparse-Table
伸展树 Splay
博弈论SG函数 Sprague-Grundy
栈的基本操作 Stack
递推法求解无符号第一类斯特林数 Stirling-Number(Cycle,Unsigned,Recursion)
递推法求解第二类斯特林数 Stirling-Number(Subset,Recursion)
倍增法求解后缀数组 Suffix-Array(Doubling)
倍增法求解后缀数组(附带Height数组) Suffix-Array-with-Height(Doubling)
使用Tarjan算法求解强连通分量 Tarjan(Strongly-Connected-Components)
数组版的字典树 Trie(Array)
指针版的字典树 Trie(Pointer)

数据结构和算法:全面的算法代码库相关推荐

  1. 圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单

    圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单 // //  CircleCore.h //  Quartz // //  Created by 仙人掌 on ...

  2. 【PySlowFast】Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩 ...

  3. Facebook开源算法代码库,轻松复现前沿视频理解模型

    在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩的工作.近日,FAIR视频团队在 ICCV 相关研讨会上开源了视频识别检测代码库 PySlowFast,并同时发布了预 ...

  4. 买什么数据结构与算法,这里有:动态图解十大经典排序算法(含JAVA代码实现)

    上篇的动图数据结构反响不错,这次来个动图排序算法大全.数据结构与算法,齐了. 几张动态图捋清Java常用数据结构及其设计原理 本文将采取动态图+文字描述+正确的java代码实现来讲解以下十大排序算法: ...

  5. java array 元素的位置_数据结构与算法:动态图解十大经典排序算法(含JAVA代码实现)...

    点击上方"JAVA",星标公众号 重磅干货,第一时间送达 本文将采取动态图+文字描述+正确的java代码实现来讲解以下十大排序算法: 冒泡排序 选择排序 插入排序 希尔排序 归并排 ...

  6. Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩的工作.近日,FAIR视频团队在 ICCV 相关 ...

  7. 【恋上数据结构】排序算法前置知识及代码环境准备

    排序准备工作 何为排序? 何为稳定性? 何为原地算法? 时间复杂度的知识 写排序算法前的准备 项目结构 Sort.java Asserts.java Integers.java Times.java ...

  8. 数据结构与算法(三) 排序算法(代码示例)

    数据结构与算法三 排序算法 1. 选择排序 2. 插入排序 3. 冒泡排序 4. 归并排序 5. 快速排序 6. 希尔排序 7. 堆排序 总结 1. 选择排序 选择排序的基本原理: 对于未排序的一组记 ...

  9. 【数据结构】图(最短路径Dijkstra算法)的JAVA代码实现

    最短路径的概念 最短路径的问题是比较典型的应用问题.在图中,确定了起始点和终点之后,一般情况下都可以有很多条路径来连接两者.而边或弧的权值最小的那一条路径就称为两点之间的最短路径,路径上的第一个顶点为 ...

  10. 口语机器翻译(ST)相关算法、论文、数据集、代码库等资源分享

    本资源整理了口语自动翻译(Speech Translation, Spoken Language Processing, Natural Language Processing)相关的经典端到端算法, ...

最新文章

  1. 史上最详细版Centos6安装详细教程
  2. 多线程端点服务发布程序(摘)
  3. vs2010下使用dmp文件和pdb文件调试时dump、exe和pdb三个文件要保持版本一致的原因
  4. 切换ubuntu启动方式 命令行/图形界面
  5. EOJ_1039_最长连续公共子序列
  6. ROS和OpenCV的对接cv_bridge
  7. 后端技术:Nginx + Spring Boot 实现负载均衡
  8. oracle伪列查询第一行,用ORACLE 中伪列rownum对查询结果进行排序
  9. sp_executesql (Transact-SQL) from MSDN
  10. MyBatis和Hibernate的优缺点对比。
  11. Google map API:查询地理位置和经纬度信息示例
  12. Hutool你值得拥有,吃相不要太难看
  13. java docx 文档不可编辑、复制
  14. 操作系统与内核的关系
  15. Visual Leak Detector VS2019
  16. OpenGL ES EGL eglDestroyContext
  17. 用matlab画OCC控制电路,基于单周期(OCC)控制的CCM PFC
  18. node-onebot对接傻妞新版
  19. 那些年啊,那些事——一个程序员的奋斗史 ——89
  20. 车载通信——J1939故障码

热门文章

  1. IP管理提高业务网络安全性的3种方式——Vecloud
  2. Ubutun重启网卡
  3. effective C++ 条款 47:使用traits classes表现类型信息
  4. WinForm(C#)CheckedlistBox绑定数据,并获得选中的值(ValueMember)和显示文本(DisplayMember...
  5. 关于ContinuationFilter的使用
  6. [收集]Visual C#中调用Windows API
  7. STM32中STD、HAL、LL库比较
  8. 64位汇编之linux系统调用
  9. Python3 内置http.client,urllib.request及三方库requests发送请求对比
  10. malloc与new的区别