专栏名称: 算法与数据结构
算法与数据结构知识、资源分享
目录
相关文章推荐
九章算法  ·  湾区不卷娃的底气! ·  4 天前  
九章算法  ·  好家伙!亚麻变起脸来可真吓人。。。 ·  6 天前  
九章算法  ·  Trump上台,码工们准备迎接川皇吧! ·  6 天前  
算法与数据结构  ·  OPPO校招面试算法真题解析 ·  1 周前  
51好读  ›  专栏  ›  算法与数据结构

算法题 12:任务调度算法(美团校招笔试题)

算法与数据结构  · 公众号  · 算法  · 2017-01-11 10:14

正文

来自:美团2015校园招聘研发笔试题


题目:任务调度在分布式调度系统中是一个很复杂很有挑战的问题。这里我们考虑一个简化的场景:假设一个中央调度机,有n个相同的任务需要调度到m台服务器上去执行。由于每台服务器的配置不一样,因此服务器执行一个任务所花费的时间也不同。现在假设第i个服务器执行一个任务需要的时间为t[i]


例如:有2个执行机a, b. 执行一个任务分别需要7min,10min,有6个任务待调度。如果平分这6个任务,即a,b各分三个任务,则最短需要30min执行完所有。如果a分这4个任务,b分2个,则最短28min执行完。


请设计调度算法,使得所有任务完成所需的时间最短


1) 简述思路


2) 请用你熟悉的编程语言编码实现以下方法,输入为m台服务器,每台机器处理一个任务的时间为t[i],完成n个任务,输出n个任务在m台服务器的分布:

int estimate_process_time(int[] t, int m, int n);


备注:

不定期选出算法牛人,赠与图灵出版社出版赞助的书籍一本。


请留言,原题目要求写代码,这里不方便提交,请描述一下解题思路。