基本情况:n男n女,每个人都有各自的preference,代码如下
Initialize each person to be free.
while (some man is free and hasn't proposed to every woman) {
Choose such a man m
w = 1st woman on m's list to whom m has not yet proposed if (w is free)
assign m and w to be engaged
else if (w prefers m to her fiancé m')
assign m and w to be engaged, and m' to be free
else
}
w rejects m
运行时间O(n^2),最后会产生对男性最有利的stable match。
异性处理需要用到inverse数组