天梯匹配算法的思路

         玩过dota的人一定会知道妖妖平台的天梯匹配算法。给人的感觉非常的合理。那么如果要自己实现一个高效的匹配算法,应该还是有点难度的。幸运的是一般同时在线的玩家不会超过1w。假设有1w个玩家同时匹配,那么对于服务器来说,O(n)的复杂度肯定是没有问题的。O(n^2)的复杂度看服务器本身的性能了。

         从天梯的合理性来看,O(n)复杂度去实现是相当困难的。毕竟你很难保证参加人的积分是合理布局的,而且有各种特殊情况,如果只是遍历一遍筛选,会有很多情况导致无法匹配的结果。先看一个大神开源的天梯匹配算法:

        package com.jcwx.game.match;

import java.util.Iterator;
import java.util.List;
import java.util.concurrent.*;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.jcwx.game.match.config.MatchConfig;

/**
 * 匹配处理器抽象类
 *
 * @author Chenlong
 * */
public class MatchProcessor implements Runnable {
    private LinkedBlockingQueue taskQueue = new LinkedBlockingQueue();
    private LinkedBlockingQueue waitAddTaskQueue = new LinkedBlockingQueue();
    private MatchConfig config;
    private ScheduledExecutor

你可能感兴趣的:(u3d)