// 假设已经获取了员工和班次信息,并存储在employee_list和shift_list中
// 按照最早可用时间优先安排
void greedy_schedule(Employee employee_list[], int num_employees, Shift shift_list[], int num_shifts){
// 初始化排班表
for(int i=0; i< num_shifts; i++){
for(int j=0; j < num_employees; j++){
schedule[i][j] = -1; // -1 表示没有安排
}
}
for(int i = 0; i < num_shifts; i++){
int assigned_count = 0;
for(int j = 0; j < num_employees; j++){
// 检查员工是否可用,是否符合技能要求,是否已经安排
if(is_employee_available(employee_list[j],shift_list[i]) && schedule[i][j] == -1){
schedule[i][j] = employee_list[j].id;
assigned_count++;
}
if(assigned_count >= shift_list[i].required_employees){
break;
}
}
}
}
利唐i人事HR社区,发布者:HR_learner,转转请注明出处:https://www.ihr360.com/hrnews/20241225806.html