std::vector<size_t> CPathFinder::findPath(CAlgorithm alhorithm) const { std::vector<size_t> path; path.reserve(pointsAmount); switch (alhorithm) { case kruskalMST: { CGraph minimumSpanningTree = kruskalFindMST(); path = minimumSpanningTree.rebuildWay(); break; } case bruteForce: { std::vector<bool> visited(pointsAmount, false); std::vector<size_t> way; way.reserve(pointsAmount); double bestLength = -1; double currentLength = 0; bruteForceSearch(visited, way, currentLength, path, bestLength); break; } default: assert(false); } std::cout << "Length is " << checkPath(path) << '\n'; return path; }