Mark As Completed Discussion

Divide and Conquer

In Divide and Conquer method, we'll implement the following steps.

  • Divide the array into two parts.
  • Find the minimum and maximum of both the parts recursively.
  • Take the minimum and maximum values of both the parts, compare them, and then find the minimum and maximum value of the entire array.

Next, we'll have a look at the Pseudocode:

Pseudocode

SNIPPET
1int[] findMinimumAndMaximum(int begin, int end,int input[])
2{
3    int maximum;
4    int minimum;
5    if ( begin == end )
6    {
7        minimum = input[begin]
8        maximum = input[begin]
9    }
10    else if ( begin + 1 == end )
11    {
12        if ( input[begin] < input[end] )
13        {
14            minimum = input[begin]
15            maximum = input[end]
16        }
17        else
18        {
19            minimum = input[end]
20            maximum = input[begin]
21        }
22    }
23    else
24    {
25        int midpoint = begin + (end - begin)/2
26        int leftArray[] = findMinimumAndMaximum(begin, midpoint, input)
27        int rightArray[] = findMinimumAndMaximum(midpoint+1, end, input)
28        if ( leftArray[0] > rightArray[0] )
29            maximum = leftArray[0]
30        else
31            maximum = rightArray[0]
32        if ( leftArray[1] < rightArray[1] )
33            minimum = leftArray[1]
34        else
35            minimum = rightArray[1]
36    }
37    
38    int result[2] = {maximum, minimum}
39   return result
40}

Now let's head straight to the implementation in Python, JavaScript, and Java:

JAVASCRIPT
OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment