算法题 12:任务调度算法(美团校招笔试题)
题目:任务调度在分布式调度系统中是一个很复杂很有挑战的问题。这里我们考虑一个简化的场景:假设一个中央调度机,有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);
************************************************************************************************************************
算法题 23:赛马比赛(网易、美团)
题目1(网易笔试题):25匹马5个跑道,怎样选出最快的5匹来?最少的次数
题目2(2016美团校招笔试题):30个马赛跑,5个跑道,找出前五名,至少找几次
题目3:64匹马,8条跑道,分几次可以选出最快的4匹?
拓展题目:n匹马(1