Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

SailHe/archives-algorithm

Open more actions menu

Repository files navigation

archives-algorithm

算法归档, 主要是C/CPP 含有VS2017 的配置文件

该解决方案下有多个子项目,其中:

  1. AlgorithmLearning 用于平时学习,包括oj的算法练习,以及一些未完成的算法或其它程序

  2. 主项目archives-algorithm 用于测试 DSAUtilityExtension 生成的Dll库和算法

    • 测试概览(测试细节的完成情况请参考3中项前的待办; 括号内的内容表示测试用程序所在的文件名称)
      • 数据结构测试
        • 线性结构
      • 进制转换测试
      • 数学相关测试
      • 大数相关测试
      • 随机数发生器测试 (RadixTester)
  3. DSAUtilityExtension 是从项目1和2中提取出的相对稳定, 具有一定复用性的程序('*'号表示只实现了局部或是实现得不完善)

    • 数据结构
      • 线性结构
        • 链接线性表
          • 虚拟(VirtualList 使用数组作为虚拟内存构造链表)*
          • 单向链接表
          • 双向链接表(未实现)
        • 顺序线性表(动态增长数组 PS 实现的比较简单)*
        • 堆栈
          • 链接堆栈
        • 队列(Queue 接口)
          • 链接队列(LinkedQueue)
          • 双端队列(Deque)
          • 优先队列(使用堆实现)*
        • 多项式
      • 查找结构(不包含搜索树)
        • 跳表(未实现)*
        • 并查集
      • 树(一般情况下 子级表示继承关系)
        • 二叉树
          • 二叉搜索树
            • AVL树
          • Huffman树
            • 数组式(没有继承关系)
            • 树式(继承于二叉树)
          • 表达式树(ExpressionTree)*
            • 前缀
            • 中缀
            • 后缀
          • 静态二叉树
            • 静态二叉搜索树(虚继承了静态二叉树, 二叉搜索树; PS 这个实现有点欠妥)
            • 完全静态二叉搜索树
                • 最大堆
                • 最小堆
      • 图(接口类; 无向 || 有向; 计权存边; 此外还有一个模板图 实现之后感觉没啥必要 完全可使用这个基本的替代)
        • 邻接矩阵图(std::vector+std::vector)
        • 邻接表图(std::vector+std::list)
      • 坐标地图类(等权存点 4方向 || 8 方向 || 拓展方向)
    • 大数相关(基本都支持string直接或间接参与运算)
      • 大数类*
        • 无限制加法
        • 无限制乘法
        • int32范围减法
        • int32范围除法
        • 乘数int32范围阶乘
        • 补码减法*
      • 进制转换器类(Transition 无限制大小)
        • 基于二进制的转换器
        • 基于十进制的转换器
    • 其它
      • Point相关
      • Sub(下标)相关
      • 三角形类
      • 分数类
    • 算法(参见拓展空间 文件名: ExtendSpace.h PS: 名称可能不怎么合适; 分类可能不准确甚至有错误; +表示需要测试用例)
      • 标准拓展(StandardExtend)
        • 略(与IO有关的函数/模板 和 其它辅助函数/模板)
      • 实用拓展拓展(Utility)
        • 二维数组列区间翻转
        • 二维数组循环列移动+
        • 最长递增子序列
        • 排序
          • 冒泡
          • 选择
          • 希尔
      • 数学拓展(MathExtend)
        • 辅助模板
          • 向量加法模板
          • 矩阵乘法模板
        • 查找
          • 二分查找模板(可使用STL替换 故功能较简陋)
          • 三分法求一元函数的区间最小解
          • 错排构建函数
          • 大数整除判断函数
          • 子串删除函数
        • 数论
          • 逆序数
          • 进制相关的一些小算法(略)
          • 快速阶乘
          • 快速幂
          • 任意底数对数
          • 阶乘表构建
          • 组合数
          • 排列数
          • 素数判断
          • 真因子和
          • 真因子和表构建
          • 因子数目
          • 开方函数(效率不如STL)
          • 方差
          • 卡塔兰数
          • N边最大交点数计算函数
          • 菲波纳契数表构建函数
          • 欧几里德算法
          • 拓展的欧几里德算法
          • 线性方程的最小非负整数解求解函数
          • 模逆元
          • 中国剩余定理
          • 欧拉函数
          • 巴什博弈
        • 背包算法
          • 零壹过程
          • 完全背包过程
          • 多重背包过程 - 范围数字全排列 - 范围数字全排列(字典序) - 字符串匹配字符计数 - 回文字串判断(递归实现) - 括号匹配 - 杨辉三角构建函数
      • 图论(此处算法实现于图接口中)
        • DFS(回溯式)
        • BFS
        • 单源最短路径问题统一函数
          • Dijkstra(无负权边的情况)
          • SPFA
        • 多源最短路问题统一函数
          • FloydWarshall
        • 拓扑排序
      • 其它
        • 随机数发生器
          • 计算机可表示的有理数范围随机数
          • 理数概率检测(有理数的分数形式做为参数)
          • 支持类型
            • unsigned
            • int32
            • double
        • 回溯搜索
  4. InterfaceForDotNet 是基于DSAUtilityExtension的 C# 接口

PS:

  1. 若在X64下改动了DSAUtilityExtension中的内容, 但未见效果, 可能是此时引用的仍是X86下内容的原因 这通常发生在一个既有x86又有x64的dll被一个只有x86的程序引用的时候, 此时即使配置显示的是x64, 但实际当前项目不一定 (参考AlgorithmLearning引用DSAUtilityExtension)
  2. 对于 模板; 结构体; 类 : #include"../../archives-algorithm/src/ExtendSpace.h" 是可行的
  3. 配置后 #include"./ExtendSpace.h"

About

算法归档, 主要是C/CPP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.