[英]determine the cost and time for every line of the code and calculate time complexity
我很难找到这些代码行的成本和时间,任何人都可以帮助我。 我知道合并排序的时间复杂度通常是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;
}
}
嗨,当您调用该函数时,您需要做的是编写此代码并调用该函数。
long start = System.currentTimeMillis();
// start of function
// enter the values
mergeTwoSortedArrays(int[] one, int[] two) ;
// end of function
// ending time
long end = System.currentTimeMillis();
System.out.println("time taken by the function " +
(end - start) + "ms");
对下一个功能做同样的事情......希望它能帮助你......这里有一个链接可以更好地帮助你
访问https://beyondcorner.com/calculate-time-complexity-algorithms-java-programs/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.