优化作业排序算法:减少移动,提升效率

需积分: 5 7 下载量 163 浏览量 更新于2024-08-05 收藏 404KB DOC 举报
在这个文档中,讨论了一种改进的作业排序算法,旨在减少在有限期作业排序过程中的时间浪费。传统的贪心算法在决定作业插入队列位置时可能会导致大量作业位置调整,效率不高。作者提出了一种新的策略,通过分配不相交的空闲时间区间给作业,使得作业能够被更有效地安排。 核心思路是,当考虑作业i时,优先选择时间区间[pic],这个区间是[0、1],[1、2],…,集合中最大的空闲部分。通过使用数据结构(如UNION与FIND算法)来管理这些不相交的时间区间,算法的时间复杂度得以优化,从原来的[pic]降低到了接近于[pic]的级别。这种优化允许在装配作业到子集J的过程中,避免频繁移动已经分配了时间片的作业,从而提高了效率。 举例来说,当有n=5个作业,每项作业的处理时间和截止日期分别为(20,15,10,5,1)和(2,2,1,3,3)时,通过应用新算法,可以一步步筛选出最优的作业组合J={1,2,4}。因为作业数量较少且每个作业只需一个单位时间,算法简化为考虑长度为[pic]的时间片,用i表示这些时间片,并通过集合管理策略来确定作业的分配。 具体实现时,将每个作业的期限值分配到对应的时间片中,确保空闲时间片的利用最大化。例如,对于期限值i,找到满足[pic]的最大整数时间片作为分配依据。引入虚构的期限值0和时间片[pic],用于处理特殊情况。当两个期限值i和j在同一个集合时,它们对应的作业可以分配到最近的有效时间片[pic]。 这个更快的作业排序算法通过优化任务分配策略和数据结构的使用,显著提升了作业调度的效率,减少了不必要的操作,从而在实际应用中具有重要的性能提升作用。