Exemplo n.º 1
0
 private static bool isBefore(HtWt left, HtWt right)
 {
     if (left.height <= right.height && left.weight <= right.weight)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemplo n.º 2
0
 private static int compareHtwt(HtWt left, HtWt right)
 {
     if (left.height == right.height)
     {
         return(0);
     }
     else if (left.height > right.height)
     {
         return(1);
     }
     else
     {
         return(-1);
     }
 }
Exemplo n.º 3
0
        private static void Merge(HtWt[] arr, int start, int end, int mid)
        {
            HtWt[] left_arr  = new HtWt[mid - start + 1];
            HtWt[] right_arr = new HtWt[end - mid];
            for (int i = 0; i < left_arr.Length; i++)
            {
                left_arr[i] = arr[start + i];
            }
            for (int i = 0; i < right_arr.Length; i++)
            {
                right_arr[i] = arr[mid + 1 + i];
            }

            int l = 0, r = 0, k = start;

            while (true)
            {
                if (l > left_arr.Length - 1)
                {
                    while (r <= right_arr.Length - 1)
                    {
                        arr[k++] = right_arr[r++];
                    }
                    return;
                }
                if (r > right_arr.Length - 1)
                {
                    while (l <= left_arr.Length - 1)
                    {
                        arr[k++] = left_arr[l++];
                    }
                    return;
                }
                if (compareHtwt(left_arr[l], right_arr[r]) <= 0)
                {
                    arr[k++] = left_arr[l++];
                }
                else
                {
                    arr[k++] = right_arr[r++];
                }
            }
        }
Exemplo n.º 4
0
 public bool isBefore(HtWt another)
 {
     return(this.height <= another.height && this.weight <= another.weight);
 }