关闭

最短作业优先调度算法(SJF算法)的C++实现

题目要求: 在作业调度中,该算法每次从后备作业队列中挑选估计服务时间最短的一个或几个作业,将他们调入内存,分配必要的资源,创建进程并放入就绪队列。与在进程调度中的原理类似。假设有n项作业位于就绪队列中,这些作业的提交时间用数组requestTimes按照提交时间的先后顺序存储,对应的作业服务时间(持续时间)用数组durations存储。采用SJF算法,计算n项作业的平均等待时间。当存在多个相同长...
阅读(3682) 评论(0)

2016华为软件精英挑战赛:高级案例---贪心策略(二)

一,算法设计思想: 实际上本算法是对期初算法思想的优化,主要的优化就在于我们不在盲目的寻找两个必经点的路径,而是总是寻找距离最近的必经点作为新起点去寻找下一个最近的必经点.......然而这样做还不够呢! 1,基于贪心思想的算法 在未把所有必经点访问完之前,终点是禁止访问的。 1)已起点作为“当前原点”,用Dijkstra算法将“当前原点”作为起点,找到起点...
阅读(3218) 评论(4)

2016华为软件精英挑战赛:初期算法设计方案及其代码实现

注:此算法存在诸多问题,无法解决规模比较大的案例。 算法设计步骤: 第一步:建图(邻接矩阵):运用官方提供的函数接口实现读取,图的建立自己实现。 1) 有一个特殊情况:根据说明3,如果顶点A到达B有多条边,总是取最小边建图,其他重复的边舍去(因为我们一定不会选择大的边,并且邻接矩阵也无法存储两点间多条边)。 有向图的建立,http://jingyan.baidu.com/artic...
阅读(4303) 评论(0)

2016华为软件精英挑战赛:低级案例---暴力出奇迹(一)

比赛今天截止,最终只得了71分左右(稍微有点点波动),距离最后一名12分,厉害的人真多啊,你们是我前进的动力!...
阅读(3313) 评论(2)

遗传算法入门到掌握

遗传算法的有趣应用很多,诸如寻路问题,8数码问题,囚犯困境,动作控制,找圆心问题(这是一个国外网友的建议:在一个不规则的多边形 中,寻找一个包含在该多边形内的最大圆圈的圆心。),TSP问题(在以后的章节里面将做详细介绍。),生产调度问题,人工生命模拟等。直到最后看到一个非 常有趣的比喻,觉得由此引出的袋鼠跳问题(暂且这么叫它吧),既有趣直观又直达遗传算法的本质,确实非常适合作为初学者入门的例子。...
阅读(1618) 评论(0)

[置顶] 2016华为软件精英挑战赛:赛题及其答疑汇总

前言 赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于基础算法问题,在图论、网络、交通等各个方面均有着广泛的研究与运用,里面不乏一些经典的算法,例如最短路中的广度优先搜索,Dijkstra算法等。网络算路问题的更优算法实现对于网络资源高效配置具有重要价值。 1 问题定义 给定一个带权重的有向图G=(V,E),V为顶点集,E为有向边集,每一条有向边均有一个权重。对于给定的顶点s、...
阅读(15334) 评论(3)

<C/C++算法>字符串匹配---KMP算法

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串(待搜索词)与文本串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,该函数本身包含了模式串的局部匹配信息。...
阅读(4676) 评论(2)

<C/C++算法> 图论基础算法小结(邻接矩阵实现)

1,广度优先搜索算法 广度优先算法(Breadth-First-Search),又称作宽度优先搜索,或横向优先搜索,简称BFS,是一种图形搜索演算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,则演算终止。广度优先搜索的实现一般采用open-closed表。 #include #include #include #include #inclu...
阅读(1994) 评论(0)

<工程数学>Alglib库,测试插值运算

1,线性插值 #include "stdafx.h" #include #include #include #include "interpolation.h" using namespace alglib; int main(int argc, char **argv) { // // We use piecewise linear spline to interpolate...
阅读(1452) 评论(0)

<C/C++数据结构>常见的树结构

1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;...
阅读(1678) 评论(0)

【工程数学】多项式拟合

概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x)。 原理 给定数据点pi(xi,yi),其中i=1,2,…,m。求近似曲线y= φ(x)。并且使得近似曲线与y=f(x)的偏差最小。近似曲线在点pi处的偏差δi= φ(xi)-y,i=1,2,...,m。 常见的曲线拟合方法:...
阅读(798) 评论(0)

<C/C++算法>贪心策略练习与总结

一.感性认识“贪心策略” 1.基本概念 所谓贪心算法是指,在对问题求解时,总是只做出在当前看来是最好的选择即可,并不穷尽各种可能来真正找出最优解。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。...
阅读(3661) 评论(1)

<C/C++算法>动态规划练习与小结

一,关于“动态规划”的学习建议: Here is my answer in similar topic Start with wikipedia article about dynamic programming then I suggest you read this article in topcoder...
阅读(5354) 评论(0)

<C/C++图>最小生成树:Prim算法

一,最小生成树算法基本概念 最小生成树是数据结构中图的一种重要应用,它的要求是从一个有n个节点的带权完全图中选择n-1条边并使这个图仍然连通(也即得到了一棵生成树),同时还要考虑使树的权之和最小。最小生成树可以用,Kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法求出。...
阅读(1957) 评论(0)

<C/C++图>搜索算法:DFS与BFS

一,图的遍历基本理论 首先定义图的遍历(Traversing Graph):指从图中某一顶点出发访问图中其余顶点,且使每个顶点仅被访问一次。有两种常用的方法可用来搜索图:即深度优先搜索和广度优先搜索。它们最终都会到达所有连通的顶点。深度优先搜索通过栈来实现,而广度优先搜索通过队列来实现。 1,深度优先图搜索 (DFS,Depth-First-Search): 下面图中的动态图显示了深度优先搜索顶点被访问的顺序。...
阅读(3622) 评论(2)

<C/C++图>单源最短路径:Dijkstra算法

一,Dijkstra算法基本概念 Dijkstra算法使用了广度优先搜索解决非负权有向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。 该算法的输入包含了一个有权重的有向图 G,以及G中的一个来源顶点 S。我们以 V 表示图 G 中所有顶点的集合。每一个图中的边,都是两个顶点所形成的有序元素对。...
阅读(2167) 评论(0)

<C/C++图>图的邻接表存储(C++模板实现)

一,邻接表表示法 图的邻接矩阵存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。邻接表由表头结点和表结点两部分组成,其中图中每个顶点均对应一个存储在数组中的表头结点。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。如图8.12所示,表结点存放的是邻接顶点在数组中的索引。对于无向图来说,使用邻接表进行存储也会出现数据冗余,表头结点...
阅读(4601) 评论(0)

<C/C++数据结构> 栈

栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。...
阅读(857) 评论(0)

<C/C++数据结构>队列(C++模板实现)

一,队列的基本概念 队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。...
阅读(1200) 评论(0)

<C/C++数据结构>单链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。 一,单链表的基本操作 1,创建头节点   手动new一个新的Node,将Node的next置为NULL即可。   head = new Node(0);head->next = NULL;...
阅读(1220) 评论(0)
34条 共2页1 2 下一页 尾页
    个人资料
    • 访问:534833次
    • 积分:7980
    • 等级:
    • 排名:第2850名
    • 原创:239篇
    • 转载:52篇
    • 译文:0篇
    • 评论:165条
    博客专栏
    个人介绍
    非CS科班出身,喜欢用C/C++思考数学 ,专注于图像处理和软件开发!本博客基于交流和记录学习的历程为目的,与诸君共勉,欢迎交流。同时,博文有不少文字并非一字一字地敲打,若侵权,请联系本人,

    E-mail:tangyb7172@foxmail.com
    最新评论