决定在某些机器或者某些工作中心先开始哪个作业的过程称为排序,或者优先调度安排。优先级规则是指在进行作业排序时使用的规则。
下面列出比较常用的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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)