java - 确定每行代码的成本和时间并计算时间复杂度

标签 java arrays algorithm sorting recursion

我很难找到这些代码行的成本和时间,任何人都可以帮助我。我知道合并排序的时间复杂度通常为 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/

关于java - 确定每行代码的成本和时间并计算时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59657492/

相关文章:

c++ - 特定地址的字节数组c++

algorithm - 有人在 'reading time algorithm' 上有任何线索吗?

java - 循环程序在 Eclipse 中终止

java - JButton 上的 ActionListener 不执行任何操作

python - 基于另一个列表对列表元素进行分组

javascript - 在 Javascript 中比较两个数组

java - 通过反射修改原始数据类型

java - 记录器和 java.lang.SecurityManager

algorithm - 确定英语单词的难度

c - 该函数将被调用多少次?