определить стоимость и время для каждой строки кода и рассчитать сложность времени - PullRequest
0 голосов
/ 09 января 2020

Мне трудно найти стоимость и время этих строк кодов, может кто-нибудь мне помочь. Я знаю, что временная сложность сортировки слиянием обычно составляет 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;
    }
}

1 Ответ

1 голос
/ 09 января 2020

Привет, когда вы вызываете функцию, вам нужно написать этот код и вызвать функцию.

    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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...