2016-01-16 26 views
0

我想实现多个投票算法,其中优先级被用来打破关系。我的意思是重点是以下几点。例如,我们有三个类--A,B和C.但优先级为A,C和B,从最高的A开始到最低的B。因此,当A和C具有相同的投票和超过B时,A将因其较高的优先权而赢得多票。打破打破算法实施的优先级的多元投票

我打破平局的唯一想法是实现许多if语句。如果我没有错,对于三个班的情况,这些是10。但是,这怎么可以推广,以便我可以实现K类的算法?你可以请一些代码帮忙吗?它可能是一些命令式语言,如C,Java,JS,C#,Python等或伪代码。

非常感谢!

+1

而不是通过遍历所有候选人和检查'如果vote [i]> vote [max]'找到胜利者,你会使用'如果vote [i]> vote [max]或(vote [i ] = vote [max]和priority [i]> priority [max])'。 – m69

回答

1

您可以先根据票数进行排序。然后遍历排序的列表,对于具有相同票数的条目,再次排序,这次使用优先级。