public int computeSingle(Graph<Node, Edge> graph, int param) {
		int numberGroups;
		long time = System.currentTimeMillis();
		System.out.println(algorithmType);
		switch (algorithmType) {
		case LOUVAIN:
			numberGroups = louvain(graph);
			break;

		case GRIVAN_NEWMAN:
			numberGroups = grivanNewman(graph, param);
			break;

		case IMPROVED_GRIVAN_NEWMAN:
			numberGroups = improvedGrivanNewman(graph, param);
			break;

		case WU_HUBERMAN:
			numberGroups = wuHuberman(graph, param);
			break;

		case FAST_NEWMAM:
			numberGroups = fastNewman(graph);
			break;

		default:
			numberGroups = 0;
			break;
		}

		long timeTotal = System.currentTimeMillis() - time;
		System.out.println("Calculation time: " + timeTotal + " ms");
		blockingQueue.add(new Event(EventName.REFRESH_VIEW));
		return numberGroups;
	}