最短作业优先计划的方法

时间:2016-01-11 04:37:11

标签: algorithm sorting scheduling priority-queue

我有一份工作清单以及完成工作所需的时间。我需要想出一个方法,就是可以先用最短的工作来安排工作。

Approch 1:
不要预处理。
每次选择最小的作业:O(N)

Approch 2:
构建优先级队列。预处理时间为:O(N)
选择最小的作业:O(logN)

Approch 3:
对作业进行排序。预处理时间为:O(NlogN)
选择最小的工作:O(1)

时间复杂,我怎样才能提出正确的方法 如果我假设我的长度为N的列表,则总时间为。
方法1: N * O(N)
方法2: O(N)+ N * O(logN)
方法3: O(NlogN)+ N * O(1)

在这种情况下,如何选择最佳方法。广泛地如何比较具有预处理时间的多种方式?

1 个答案:

答案 0 :(得分:0)

首先,很明显,方法1的复杂性更差。关于你的2和3,目前尚不清楚选择什么。它取决于big-O中的常量以及您处理的数据。

因此,我建议您使用各种排序算法对数据进行自己的数据和基准测试。