# 算法学习-CSharp **Repository Path**: kas233/algorithm-learning-csharp ## Basic Information - **Project Name**: 算法学习-CSharp - **Description**: 学习算法记录,以C#实现学习的算法。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-22 - **Last Updated**: 2022-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: 算法学习, Csharp ## README # 算法学习-CSharp #### 介绍 学习算法记录,以C#实现学习的算法。 方便调试使用,无需再操心调用过程,只需要将关注点放在算法学习测试上。 已通过反射实现自动获取对应算法类,并执行测试。 #### 目录结构 ```she |-Program.cs // 主程序 |-IAlgorithm.cs // 算法类接口,约束算法类,为实现反射铺垫 |-0_Template.cs // 算法模板类,后续拷贝复制它就可以了 |-EntityClass // 存放算法类所需实体类,如:链表、树等等 |-yyyy_MM // 算法类存放处,不做限制,获取后可删除所有,仅需要注意类命名中的序号 ``` #### 使用 > 首次,删除所有`yyyy_MM`格式命名的文件夹。可以先查看类实际命名规则。 复制**0_Template.cs**文件,按规则修改类名,即可开始编写算法。完成后,调试运行即可。 命名规则:**T\_[0000]\_算法名 **,即以`T_`开头+`四个数字序号`(按文件顺序依次递增1)+`算法名` #### 原理 所有算法类均实现接口**IAlgorithm**中声明方法**Test()**,且命名中进行了排序,在**Program.cs**中通过反射获取实现接口的类再以命名进行排序并实例化执行方法。 #### 可能存在的问题 随着题做的越来越多,可能导致编译速度变慢,有以下两种处理方式: 1. 将历史cs文件重新命名其所在命名空间如:AlgorithmTest.DATE2021 2. 删除或移动或压缩历史cs文件。