如何进行作业排序

如何进行作业排序,第1张

作业排序规则

决定在某些机器或者某些工作中心先开始哪个作业的过程称为排序,或者优先调度安排。优先级规则是指在进行作业排序时使用的规则。

下面列出比较常用的10个排序规则:

(1)先到先服务:按照订单到达的先后顺序进行加工。

(2)最短作业时间:首先加工所需时间最短的作业,然后是第二短的,依此类推。

(3)交货期一最早交货的作业最早加工:将交货期最早的作业放在第一位来加工。

(4)开始日期一交货日期减去作业的正常提前期。先用最早开工时间来选择作业。

(5)剩余松弛时间:这是交货期前的剩余时间和剩余的加工时间的差值。剩余松弛时间最短的作业先进行。

(6)每个作业剩余松弛时间:每个作业剩余松弛时间=(交货时间前的剩余时间一剩余加工时间)/剩余的作业数。

(7)关键比例:交货日期与当前日期的差值除以剩余的工作日数计算得出。关键比例最小的订单先加工。

(8)排队比例:这是通过计划中剩余松弛时间除以计划剩余排队时间计算出来的。排队比例最小的订单先加工。

(9)后到先服务:这个规则通常作为缺省值。后到的订单放在先到的上而, *** 作员在 *** 作的时候会先加工上而的订单。

(10)随机排序或者随意处置:主管或者 *** 作员通常选择他们喜欢的作业来 *** 作。

#include<stdio.h>

#include<stdlib.h>

#define shengxu 0

void RandonArray(int a[],int n)

{

int i

srand(time(NULL))

for(i=0i<ni++)

{

a[i]=rand()

}

}

void SortArray(int a[],int n)

{

int i,j,t

for(i=0i<n-1i++)

{

for(j=0j<n-i-1j++)

{

if(shengxu)

{

if(a[j]>a[j+1])

{

t=a[j+1]

a[j+1]=a[j]

a[j]=t

}

}

else

{

if(a[j]<a[j+1])

{

t=a[j+1]

a[j+1]=a[j]

a[j]=t

}

}

}

}

}

void OutputArray(int a[],int n)

{

int i

for(i=0i<ni++)

{

printf("%d,",a[i])

}

}

int main()

{

int i,n,*a

char msg[]={-56,-25,-71,-5,-78,-55,-60,-55,-93,-84,-57,-21,-72,-8,-50,

-46,50,48,48,-78,-58,-72,-69,-93,-95,0}

printf("%s\n\n",msg)

printf("请输入要随机产生的数组的元素个数:")

scanf("%d",&n)

a=(int*)calloc(n,sizeof(int))

RandonArray(a,n)

printf("%s排序前数组各元素的值是:\n",shengxu ? "升序" : "降序")

OutputArray(a,n)

SortArray(a,n)

printf("\n%s排序后数组各元素的值是:\n",shengxu ? "升序" : "降序")

OutputArray(a,n)

free(a)

printf("\n")

system("PAUSE")

return EXIT_SUCCESS

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12144361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存