“数据结构”是计算机科学与技术专业、软件工程专业甚至于其它电气信息类专业的重要专业基础课程。
它所讨论的知识内容和提倡的技术方法,无论对进一步学习计算机领域的其它课程,还是对从事大型信息工程的开发,都是重要而必备的基础。
程序设计解决问题往往有多种方法,且不同方法之间的效率可能相差甚远。
程序的时间和空间效率,不仅跟数据的组织方式有关,也跟处理流程的巧妙程度有关。
本课程将介绍并探讨有关数据组织、算法设计、时间和空间效率的概念和通用分析方法,帮助学员学会数据的组织方法和一些典型算法的实现,能够针对问题的应用背景分析,选择合适的数据结构,从而培养高级程序设计技能。
2024/10/12 18:27:44 136.49MB C lang C++ C#
1
本框架提供了有关粒子群算法(PSO)和遗传算法(GA)的完整实现,以及一套关于改进、应用、测试、结果输出的完整框架。
本框架对粒子群算法与遗传算法进行逻辑解耦,对其中的改进点予以封装,进行模块化,使用者可以采取自己对该模块的改进替换默认实现组成新的改进算法与已有算法进行对比试验。
试验结果基于Excel文件输出,并可通过设定不同的迭代结束方式选择试验数据的输出方式,包括:1.输出随迭代次数变化的平均达优率数据(设定终止条件区间大于0)。
2.输出随迭代次数变化的平均最优值数据(设定终止条件区间等于0)。
本框架了包含了常用基准函数的实现以及遗传算法与粒子群算法对其的求解方案实现和对比,如TSP,01背包,Banana函数,Griewank函数等。
并提供大量工具方法,如KMeans,随机序列生成与无效序列修补方法等等。
对遗传算法的二进制编码,整数编码,实数编码,整数序列编码(用于求解TSP等),粒子群算法的各种拓扑结构,以及两种算法的参数各种更新方式均有实现,并提供接口供使用者实现新的改进方式并整合入框架进行试验。
其中还包括对PSO进行离散化的支持接口,和自己的设计一种离散PSO方法及其用以求解01背包问题的实现样例。
欢迎参考并提出宝贵意见,特别欢迎愿意协同更新修补代码的朋友(邮箱starffly@foxmail.com)。
代码已作为lakeast项目托管在GoogleCode:http://code.google.com/p/lakeasthttp://code.google.com/p/lakeast/downloads/list某些类的功能说明:org.lakest.common中:BoundaryType定义了一个枚举,表示变量超出约束范围时为恢复到约束范围所采用的处理方式,分别是NONE(不处理),WRAP(加减若干整数个区间长度),BOUNCE(超出部分向区间内部折叠),STICK(取超出方向的最大限定值)。
Constraint定义了一个代表变量约束范围的类。
Functions定义了一系列基准函数的具体实现以供其他类统一调用。
InitializeException定义了一个代表程序初始化出现错误的异常类。
Randoms类的各个静态方法用以产生各种类型的随机数以及随机序列的快速产生。
Range类的实现了用以判断变量是否超出约束范围以及将超出约束范围的变量根据一定原则修补到约束范围的方法。
ToStringBuffer是一个将数组转换为其字符串表示的类。
org.lakeast.ga.skeleton中:AbstractChromosome定义了染色体的公共方法。
AbstractDomain是定义问题域有关的计算与参数的抽象类。
AbstractFactorGenerator定义产生交叉概率和变异概率的共同方法。
BinaryChromosome是采用二进制编码的染色体的具体实现类。
ConstantFactorGenerator是一个把交叉概率和变异概率定义为常量的参数产生器。
ConstraintSet用于在计算过程中保存和获取应用问题的各个维度的约束。
Domain是遗传算法求解中所有问题域必须实现的接口。
EncodingType是一个表明染色体编码类型的枚举,包括BINARY(二进制),REAL(实数),INTEGER(整型)。
Factor是交叉概率和变异概率的封装。
IFactorGenerator参数产生器的公共接口。
Population定义了染色体种群的行为,包括种群的迭代,轮盘赌选择和交叉以及最优个体的保存。
org.lakeast.ga.chromosome中:BinaryChromosome二进制编码染色体实现。
IntegerChromosome整数编码染色体实现。
RealChromosome实数编码染色体实现。
SequenceIntegerChromosome整数序列染色体实现。
org.lakeast.pso.skeleton中:AbstractDomain提供一个接口,将粒子的位置向量解释到离散空间,同时不干扰粒子的更新方式。
AbstractF
2024/10/11 21:51:28 1.42MB 遗传算法 粒子群算法 GA PSO
1
基本图形的填充,用C语言提供的函数画出三角形,矩形,圆,椭圆,直线等等图形运用自己的想象拼成一幅图形和一幅图模,可运用调用函数,掌握算法等实现图形的完美填充;
内容主要包括3个方面:
2024/10/9 14:03:40 81KB 基本图形填充
1
一、实验题目:页面置换算法(请求分页)二、实验目的:进一步理解父子进程之间的关系。
1)理解内存页面调度的机理。
2)掌握页面置换算法的实现方法。
3)通过实验比较不同调度算法的优劣。
4)培养综合运用所学知识的能力。
页面置换算法是虚拟存储管理实现的关键,通过本次试验理解内存页面调度的机制,在模拟实现FIFO、LRU等经典页面置换算法的基础上,比较各种置换算法的效率及优缺点,从而了解虚拟存储实现的过程。
将不同的置换算法放在不同的子进程中加以模拟,培养综合运用所学知识的能力。
三、实验内容及要求这是一个综合型实验,要求在掌握父子进程并发执行机制和内存页面置换算法的基础上,能综合运用这两方面的知识,自行编制程序。
程序涉及一个父进程和两个子进程。
父进程使用rand()函数随机产生若干随机数,经过处理后,存于一数组Acess_Series[]中,作为内存页面访问的序列。
两个子进程根据这个访问序列,分别采用FIFO和LRU两种不同的页面置换算法对内存页面进行调度。
要求:1)每个子进程应能反映出页面置换的过程,并统计页面置换算法的命中或缺页情况。
设缺页的次数为diseffect。
总的页面访问次数为total_instruction。
缺页率=disaffect/total_instruction命中率=1-disaffect/total_instruction2)将为进程分配的内存页面数mframe作为程序的参数,通过多次运行程序,说明FIFO算法存在的Belady现象。
2024/10/5 7:39:41 3.68MB 操作系统 上机 实验报告 页面置换
1
偏移多边形该算法的实现在进行了解释。
的绕组号算法经过改编,但请阅读“说明”部分。
该代码本身是由AndreasMonitzer编写的。
它有什么作用?它允许您收缩和扩展多边形,就像在其周围绘制轮廓一样。
由于它仅输出多边形,因此它还会通过参数来控制要添加的弧点数量,从而在尖角处添加弧。
依存关系装箱机将0.4版的用作其数据类型。
原因是作者需要与集成,但是对于操作本身并不一定需要。
笔记该算法中现在有一些幻数,包括绕组数计算。
最初,我使用epsilon()返回的值,但事实证明,这在很多情况下都失败了(其中一些作为测试用例包括在内)。
我不知道为什么会这样,这可能是不同规模的问题。
现在,这些值已针对普通屏幕上的像素比例进行了优化。
有什么可以帮忙的吗?只需在此github项目上打开票证和/或请求请求即可。
确保您说明您想做什么以及原因。
执照根据以下任一许可A
2024/10/5 4:10:47 13KB Rust
1
本代码主要利用MATLAB工具进行MATLAB——基于PSO工具箱的函数寻优算法仿真,实现函数寻优的模拟
2024/10/4 12:05:46 32KB MATLAB 机器学习 POS
1
随机产生50001000050000100000200000个随机数,存入文本中,从文本中读取数据进行排序,排序后的结果存入另一文本
1
有序序列聚类分析算法可以实现节点(分为k类)的的分析
2024/10/1 0:13:46 1024B 有序序列的聚类算法
1
开源算法该项目是各种编程语言中各种算法的实现的集合。
这些算法非常有用且相对简单,建议任何计算机科学专业的学生都可以实施。
动机此项目的动机是此想要贡献?看看选择您要处理的问题用选择的语言发表评论,之后您将被分配到该问题。
只有这样才能开始处理任务。
如果您选择的算法已经实现,请尝试对其进行优化。
如果当前尚不存在自述文件,请确保将其添加到自述文件中。
注意:鼓励以不同的语言实现已经实现的算法。
项目结构回购的结构类似于算法类别算法名称语言实现-源代码当前实施的算法编译器LALR解析器LL-1解析器圆图布雷森纳姆加密迪菲·赫尔曼RSAShamir秘密分享算法图算法0/1BFS遍历BFS遍历双向Dijkstra循环检测DFS遍历多源BFS所有对最短路径(FloydWarshall)贝尔曼福特算法寻桥算法拓扑排序LeetCode解决方案马尔可夫算法维特比算法网页排名多项式解算器牛顿法设置检查布隆过滤器频率排序珠子排序双音排序气泡排序递归气泡排序桶分类鸡尾酒排序梳状排序计数排序
1
目前LS-SVMlab工具箱用户指南包含了大量MATALAB中LS-SVM算法的实现,其中涉及分类,回归,时间序列预测和无监督学习。
所有的功能都已经用Matlab从R2008a,R2008b,R2009a测试,工具箱中参考命令都以打印字体书写。
2024/9/29 1:32:49 511KB 中文 库文件 最小支持向量机
1
共 516 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡