1

我目前正在学习高级数据结构课程,并且对图表有所了解。今年夏天,我被要求帮助编写一个算法来匹配室友。现在,对于我的数据结构课程,我编写了一个城市路径图并执行了一些排序和 prims 算法,我有点想,一个图可能是开始我的室友匹配算法的好地方。

我在想我们的数据库可能只是一个文本文件,没什么花哨的。但是我可以将图中的每个节点初始化为一个学生每个学生对更多的学生都有一个无向边(对于不想和另一个室友的学生没有边,联谊会也不想要重复室友)。现在我还可以根据特殊兴趣使边缘权重更大。

上面列出的所有内容都非常简单,我认为实施它不会遇到任何问题。但这是我的问题:

我应该如何更新共同兴趣领域?我应该从物理调查开始,然后返回文本文件并手动更新边缘的权重吗?或者我应该创建一个跟踪匹配兴趣的字段?

4

1 回答 1

1

您尝试设计的内容称为二分匹配。幸运的是,与其他二分匹配算法不同,您不需要花哨的图形算法和复杂的实现。这与稳定婚姻问题非常接近,令人惊讶的是,有非常有效甚至更简单的算法来解决这个问题。

如果你有兴趣,我可以分享我的稳定婚姻问题的 C++ 实现。

于 2017-04-25T16:10:33.973 回答