ef gs_matching(mp,wp):
#mp是男士的择偶排序的集合 wp是女士的
m = len(mp)
n = len(wp)
#给出男士和女士是否单身的数组用以评价
ismanfree = [true]*m
iswomenfree = [true]*n
#男士是否向女士求过婚的表格
ismanproposed = [[false for i in range(n)]for j in range(m)]
#最后匹配得出的组合 返回结果
match = [(-1,-1)]*m
while(true in ismanfree):
#找到第一个单身男士的索引值
indexm = ismanfree.index(true)
#对每个女生求婚 找到男士优先列表中还没找到对象的女士
if(false in ismanproposed[indexm]):
indexw = -1 #找到还没被求婚的排名靠前的女士