Я пишу алгоритм для преобразования * n матрицы в один массив.
1 2 3
4 5 6
7 8 9
= [1, 2, 3, 4, 5, 6, 7, 8, 9]
Я запутался, если то, что я сделал, это O (n 2 ) или O(n 3 ):
public int[] mergeMatrix(int[][] matrix) {
List<Integer> tempList = new ArrayList<>();
for (int[] array : matrix) {
for (int i : array) {
tempList.add(i);
}
}
int totalLength = tempList.size();
int[] mergedArray = new int[totalLength];
for (int i = 0; i < tempList.size(); i++) {
mergedArray[i] = tempList.get(i);
}
return mergedArray;
}
Будет ли это O (n 2 ), потому что это самый длинный наихудший случай процессов алгоритмов или O(n 3 ), потому что O (n) + O (n 2 ) = O (n 3 )?