java - Complexity of merge -


what complexity of variant version of merge ? Ο(n) or o(nlogn) ?

suppose complexity of function:

elements.indexofrightmostsmallestelement(array, i, mid - 1); 

is o(logn).

private static long merge(list<integer> array, int[] res, int start, int mid, int end) {     int = start; // index of left subarray     int j = mid; // index of right subarray     int k = start; //index of mid      long inversions = 0;      (int r = start; r <= end; r++) {         // copy smallest values either left or right side         // temporary array res         if ((j>end) || (i < mid && array.get(i) <= array.get(j))) {             res[r] = array.get(i);             i++;         } else {             if (i < mid) {                 /* @ step in merge(), if a[i] greater a[j],                     there (mid – i) inversions. because left , right subarrays                     sorted, remaining elements in left-subarray                    (a[i+1], a[i+2] … a[mid]) greater a[j]                 */                 if (array.get(i) - array.get(j) > 1) {                     inversions +=  3 * (mid - i);                  } else {                     int s;                     //we search position of rightmost element increased 1 (o(logn))                     s = elements.indexofrightmostsmallestelement(array, i, mid - 1);                     inversions +=  2 * (s - + 1);     // elements position position s have same value , increased 1 of [j]                     inversions +=  3 * (mid - (s + 1)); // elements position s+1 position mid difference greater 1 because subarray sorted                 }             }             res[r] = array.get(j);             j++;         }     } } 


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -