演算法導論課的課程作業
#include
using
namespace std;
//是否有單身的男人的判斷函式
bool
man_free
(bool
*man_state,
int n,
int&index)
}return
false;}
//該男人是否和所有女人求過婚
bool
man_no_date
(bool
**man_date,
int n,
int index)
}return
false;}
//尋找沒求過婚的女人中排名最高的女人
intfind_highest_woman
(bool
**man_date,
int*
*man,
int n,
int theman)
}return-1
;}intmain()
for(
int i =
0; i < n; i++)}
for(
int i =
0; i < n; i++)}
//初始化記錄男人女人單身狀態的bool陣列和記錄男人向女人求婚的陣列
bool
*man_state,
*woman_state;
bool
**date;
man_state =
newbool
[n];
for(
int i =
0; i < n; i++
) woman_state =
newbool
[n];
for(
int i =
0; i < n; i++
) date =
newbool
*[n]
;for
(int i =
0; i < n; i++
)for
(int i =
0; i < n; i++)}
//初始化記錄男人女人配對的陣列
int*woman_man_pair =
newint
[n];
for(
int i =
0; i < n; i++
)//gs演算法主體部分
int index =0;
while
(man_free
(man_state, n, index)
&&man_no_date
(date, n, index)
)else
else}}
for(
int i =
0; i < n; i++)}
}return0;
}
穩定匹配婚姻 c 版GS演算法
給出乙個 n 個男性的集合 m和 n 個女性的集合 w,找到乙個 穩定 匹配。每位男性根據對女性的心儀程度從高至低進行排名 每位女性根據對男性的心儀程度從高至低進行排名。初始讓所有男孩女孩處於空閒狀態 while 存在任意男孩m是空閒的,且沒有對每個女孩求過婚 選擇這個男孩m 假設w是男孩m還沒求過...
演算法 穩定匹配 C 版
由於學習需要,然後花費將近兩天時間研究這個問題,然後用c 描述出來,具體內容看下面 為了解決穩定匹配問題 stable matching problem 前輩們提出了gs演算法。下面就是博主使用gs演算法完成的本題,同時在研究過程中發現了乙個新的匹配思路,將會在下面發出來 不知道前輩們有沒有提出過 ...
穩定匹配演算法 C 語言實現 框架
給定 n 個男人,n個女人,每個男人都有一張對所有女人的偏愛表,每個女人都有一張對所有的男人的偏愛表,要求設計一演算法,產生一穩定匹配。匹配過程 初始化所有的男人和女人都是自由的 while 存在男人 m是自由的且還沒對每個女人都求過婚 選擇這樣乙個男人m 令w 是m 的優先表中m 還沒求過婚的最高...