前言
概念介绍
- 在上一节“算法:什么是任务计划问题?”中我们已经详细的描述了任务计划问题的基本概念,在这里我们就不再赘述。
- 下面我们用具体的例子来说明解该问题的原理
- 注意
- 在执行两个“相同的任务”之间,必须至少有n个单位时间,此时CPU不能执行该任务,只能执行其他任务或者不工作。
原理讲解
- 假设最大任务执行次数为a,该任务编号为A,我们不考虑其他任务,其需要的等待时间是(a - 1) * n。
- 除去编号为A的任务,假设还有最大任务执行次数为b,该任务编号为B的任务。该任务中的(b - 1)个任务可以在A的等待时间内完成,那么那段时间就不能算进等待时间里,因此总等待时间需要减去b - 1。
- 除去编号为A和B的任务,假设还有最大任务执行次数为c,该任务编号为C的任务。显然该任务可以在原来等待时间内完成,那么那段时间就不能算进等待时间里,因此总等待时间需要减去c。
- 依次类推,如果计算出的等待时间是负数,这是不切实际的,我们直接返回整个任务数组的长度。否则,我们返回的是整个任数组的长度加上等待时间。
效果展示
说明
- 在公众号中回复“算法源码”即可获取十大经典排序算法源码
- 在公众号中回复“算法书籍”即可获取经典入门算法书籍
- 在公众号中回复“数据结构”即可获取数据结构相关源码
- 注:开发环境为Qt5.12.4