Мне трудно найти стоимость и время этих строк кодов, может кто-нибудь мне помочь. Я знаю, что временная сложность сортировки слиянием обычно составляет O (n log2 n) , но мне трудно перечислить время для каждой строки, например, стоимость C1, C2, C3 ...
Фрагмент кода для программы сортировки слиянием
public class MergeSort {
public static int[] mergeTwoSortedArrays(int[] one, int[] two) {
int[] sorted = new int[one.length + two.length];
int i, j, k = 0;
while (i < one.length && j < two.length) {
if (one[i] < two[j]) {
sorted[k] = one[i];
k++;
i++;
} else {
sorted[k] = two[j];
k++;
j++;
}
}
if (i == one.length) {
while (j < two.length) {
sorted[k] = two[j];
k++;
j++;
}
}
if (j == two.length) {
while (i < one.length) {
sorted[k] = one[i];
k++;
i++;
}
}
return sorted;
}
public static int[] mergeSort(int[] x, int left, int right) {
if (left == right) {
int[] br = new int[1];
br[0] = x[left];
return br;
}
int mid = (left + right) / 2;
int[] fh = mergeSort(x, left, mid);
int[] sh = mergeSort(x, mid + 1, right);
int[] merged = mergeTwoSortedArrays(fh, sh);
return merged;
}
}