繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM