Я пытался проанализировать, какова будет временная сложность этого кода, но я застрял. Считаю ли я, что это O (n ^ 2) временная сложность из-за двух циклов for, или это просто O (n), потому что второй цикл for не всегда выполняется?
С помощью этого кода я должен сканировать 2d массив на основе графика
//adj is edgeMatrix
public int[] getClosenessCentrality(int[][] adj){
int size = adj.length * adj.length;
int[] closeness = new int[size];
for (int vertex = 0; vertex < adj.length; vertex++) {
boolean[] visited = new boolean[size];
PriorityQueue<Integer> pq = new PriorityQueue<Integer>(size);
pq.add(vertex);
while (!pq.isEmpty()) {
int u = pq.remove();
if(!visited[u]) {
visited[u] = true;
for (int i = 0; i < size; i++) {
//Priority Queue speeds up extract-min
if (!visited[i]) {
if (adj[u][i] > 0) {
pq.add(adj[u][i]+1);
}
}
}
closeness[vertex] += 1;
}
}
}
return closeness;
}