一. 算法引导
稳定匹配算法, 在平常相亲活动中,有 n 男, n 女, 这时进行相亲活动,就要根据喜好进行优先顺序的排列,每个人都有自己的喜好,因此,这就有最终的匹配是否稳定那,两个人稳定的匹配结婚才会有结果。
举个栗子:
对于这样的结果那,X 喜欢 B 胜于喜欢 C, 同时 B 喜欢 X 胜于喜欢 Z , 这样就会出现不稳定的情况, 应该考虑 X-B 的匹配情况。
二. 算法实现
描述: 有 1 到 M 个 Man, 和 1 到 W 个Woman, 然后这时每个男孩和女孩对对方都有一个排序, 我们找出没有匹配的男性,对其进行讨论, 他的排序表中,从高到低进行匹配,如果 挑选的这个 W且还没匹配过,其巧好没有匹配,则他俩 匹配, 若匹配了,则看W 匹配的 M‘ 的 高低顺序 与 M 的高低顺序(这里的高低顺序是在W 眼中的高低顺序), 如果M高,则替换掉M’, 使其恢复单身, 否则, 就在此中再任意找一个没匹配的男性。
这里有个ppt, 描述的很详细,过程完全是一看即懂!每个人都有自己的喜好吗,哈哈。 http://download.csdn.net/detail/myprograminglife/8349497
编程实现:
首先获得一个每个人的排序表男女排序文件: