- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
根据稳定婚姻算法规律,对公司和应聘者应聘工作的编程。本程序是在原程序中设置好公司和应聘者对对方的满意顺序。在程序中为:
具体如下:
#includeiostream
#include stack
using namespace std;
#define NUM 3
#define NIL -1
int GetPositionFromCompany(int companyArray[][NUM], int company, int employee)
{
for(int i=0; iNUM; i++)
if(companyArray[company][i] == employee)
return i;
return NIL;
}
void ChoosePartener(stackint employeeStack, int employeePos, int employeeArray[][NUM], int companyArray[][NUM], int employeePerfer[], int employeeStartPos[], int companyNow[])
{
//选择自己名单上排在首位的公司
int perferCompany = employeeArray[employeePos][employeeStartPos[employeePos]];
//如果该公司没有接受过应聘,则接受该应聘者的申请
if(companyNow[perferCompany] == NIL)
{
companyNow[perferCompany] = employeePos;
employeePerfer[employeePos] = perferCompany;
}
//如果已经有人向该公司申请,则判断其现在的应聘者有没有现在的好
else
{
int oldPos = GetPositionFromCompany(companyArray, perferCompany, companyNow[perferCompany]);
int newPos = GetPositionFromCompany(companyArray, perferCompany, employeePos);
if(oldPos newPos)
{
employeeStartPos[employeePos]++;//说明该公司更喜欢现在的应聘者,选心目中第二位
//加入求职行列
employeeStack.push(employeePos);
}
else //换应聘者
{
//被拒绝的应聘者恢复求职身份
employeeStartPos[companyNow[perferCompany]]++;
//加入求职行列
employeeStack.push(companyNow[perferCompany]);
//将应聘的应聘者改为现在应聘者
companyNow[perferCompany] = employeePos;
employeePerfer[employeePos] = perferCompany;
}
}
}
int main()
{
int employeeArray[NUM][NUM] = {{0,1,2},{1,2,0},{0,1,2}};
int companyArray[NUM][NUM] = {{0,1,2},{2,1,0},{0,2,1}};
int employeePerfer[NUM] = {0};//每个应聘者列心目中的公司
int employeeStartPos[NUM] = {0};//记录每位应聘者选取的是心中第几位的公司
int companyNow[NUM] = {NIL,NIL,NIL};//公司对应的应聘者
stackint employeeStack; // 还处于就职状态的应聘者
//进行第一轮迭代,每个应聘者都选择自己名单上排在首位的公司。
for(int pos=0; posNUM; pos++)
{
ChoosePartener(employeeStack, pos, employeeArray, companyArray, employeePerfer, employeeStartPos,companyNow);
}
while(employeeStack.size()!=0)
{
int employeePos = employeeStack.top();
emplo
您可能关注的文档
- 基于ARM的数字式人体脉搏仪的设计.doc
- 基于AT89C52控制的FM收音机.doc
- 基于AT89S51及ADC0809简易数字电压表的设计.doc
- 基于AT89S52单片机交通灯控制系统的设计.doc
- 基于BS模式的教务管理系统的设计和实现毕业设计外文翻译.doc
- 基于C51单片机的MP3播放器设计.doc
- 基于CPLD数字钟设计.doc
- 基于C语言的形状识别.doc
- 基于DSP技术的5kW离网型光伏逆变器设计.doc
- 基于FPGA的音乐硬件演奏电路.doc
- 2025届衡阳市第八中学高三一诊考试物理试卷含解析.doc
- 2025届湖南省娄底市双峰一中等五校重点中学高三第二次诊断性检测物理试卷含解析.doc
- 天水市第一中学2025届高三第二次联考物理试卷含解析.doc
- 2025届金华市重点中学高三考前热身物理试卷含解析.doc
- 2025届北京市石景山区第九中学高三第四次模拟考试物理试卷含解析.doc
- 江苏扬州市2025届高三第一次模拟考试物理试卷含解析.doc
- 2025届江苏省南通市高级中学高考物理五模试卷含解析.doc
- 广东省清远市华侨中学2025届高三第一次调研测试物理试卷含解析.doc
- 辽宁省凤城市2025届高三第五次模拟考试物理试卷含解析.doc
- 内蒙古巴彦淖尔市重点中学2025届高考仿真卷物理试卷含解析.doc
最近下载
- 派出所所长2024年度民主生活会个人带头严守政治纪律和政治规矩方面,带头增强党性、严守纪律、砥砺作风等方面四个带头对照查摆剖析材料2篇.doc VIP
- [乐山]2024年四川乐山高新区事业单位招聘12人笔试历年参考题库频考点试题附带答案详解.docx
- 地方政府融资平台的改革方向及政策建议.pdf VIP
- 国土空间规划学-全套PPT课件.pptx
- 医院临床对行政职能部门管理与服务评价表.doc
- 人教版小学数学三年级下册全册教案(2024年春季修订).pdf
- 社区居家养老应急预案.docx VIP
- 2024年高级卷烟包装工技能鉴定备考试题库-下(填空、简答题汇总).docx
- 2024外研新版七年级上册英语单词字帖—衡水体.pdf
- 广东省东莞市东华中学2024年中考数学押题卷含解析.doc VIP
文档评论(0)