Given an enter **arr[]** of size **N**, Which comprises integers from **1 to N **in unsorted order**. **You possibly can apply just one sort of operation on arr[] parts’:

Then the duty is to seek out the utmost** **worth of **X** by which all the weather ought to be at their respective place of sorted order.

**Enter: **N = 6, arr[] = {6, 2, 3, 4, 5, 1} **Output: **5**Rationalization: **arr[] will be sorted by exchanging parts at first (A_{1 }= 6)

and final(A_{6 }= 1) index of arr[]. Right here worth of **X **is **5 **and likewise follows the rule of given operation.

It may be verified that there’s **no max** worth slightly that **5** of by which arr[] will be sorted.

**Enter: **N = 6, arr[] = {3, 2, 1, 6, 5, 4}**Output: **2**Rationalization:** Ingredient at 1_{st} and three_{rd } index will be swapped

to type the arr[] as = {**1**, 2, **3**, 6, 5, 4} after which 4_{th } and 6_{th }

component will be exchanged with one another to make arr[] sorted: {1, 2, 3, **4**, 5, **6**}.

For first operation worth of X used : 2

For second operation worth of X used : 2

Then, Most worth of X amongst all operations by which

we are able to place all parts to their respective sorted place: **2**

The method comprises makes use of two issues:

- Absolute variations between the index of the particular(unsorted) and sorted place of every component.
- GCD of all variations.

Let’s perceive them one after the other:

**The thought behind absolute distinction:**

Within the above picture, the primary array is unsorted and the second is in a sorted format. We will clearly see that arr[] will be sorted by swapping parts **1** and **6.**

Now, Simply take into consideration the **component: 6, **which is on the first index of unsorted arr[]. Overlook about remainder of the weather for now. Observe that we’ve **2 doable values of X = (1, 5)** by which we are able to attain 6 to its sorted place.

**When X = 1:**

Initially unsorted arr[] = {6, 2, 3, 4, 5, 1}

On swapping 6 with subsequent X_{th} component_{ }=_{ }(2) in arr[] ={**6**, **2**, 3, 4, 5, 1}, Then arr[] will likely be = {**2**, **6**, 3, 4, 5, 1}

On swapping 6 with subsequent X_{th }component = (3) in arr[] = {2, **6**, **3**, 4, 5, 1}, Then arr[] will likely be = {2, **3**, **6**, 4, 5, 1}

On swapping 6 with subsequent X_{th} component = (4) in arr[] = {2, 3, **6**, **4**, 5, 1}, Then arr[] will likely be= {2, 3, **4**, **6**, 5, 1}

On swapping 6 with subsequent X_{th }component = (5) in arr[] = {2, 3, 4, **6**, **5**, 1}, Then arr[] will likely be = {2, 3, 4, **5**, **6**, 1}

On swapping 6 with subsequent X_{th }component = (1) in arr[] = {2, 3, 4, 5, **6**, **1**}, Then arr[] will likely be = {2, 3, 4, 5, **1**, **6**}

**Essential Observe: **All parts should not of their respective sorted place, As we have been speaking about the one component: 6, So above operations have been only for component 6.

**When X = 5:**

Initially unsorted arr[] = {6, 2, 3, 4, 5, 1}

On exchanging 6 with subsequent Xth component = (1) in arr[] ={**6**, 2, 3, 4, 5, **1**}, Then arr[] will likely be = {**1**, 2, 3, 4, 5, **6**}

We efficiently put 6 to its respective sorted place in each of the circumstances of X. So now the query is from the place we bought 1 and 5 for X?

**The reason for doable values of X**:

Worth of index, When component 6 was current in unsorted arr[] = 1(1 based mostly indexing)

Worth of index, When component 6 was current in sorted arr[] = 6(1 based mostly indexing)

Absolute distinction between sorted and unsorted index = | 6 – 1 | = 5.

To cowl the space of 5 indices, We should select the worth of X in such a approach that the distinction ought to be utterly divisible by X. Which conclude that **X** ought to be a **issue** of **absolute distinction**.

Formally, All doable values of X for a single component are = All elements of absolute distinction. It may be verified that 6 can’t be positioned to its respective sorted place by selecting X = {2, 3, 4}, As a result of none of them are elements of absolute distinction=5. Subsequently, for the above-discussed case, we’ve two doable values of X, in Which **5 **is** **the** Most.**

As we all know that any quantity is a think about itself. Subsequently we are able to conclude the rule:-

Suppose absolute distinction = Okay. All doable values of X = elements(Okay) = {A, B, . . . . ., Okay}.It may be additionally verified that Okay would be the most amongst all doable elements. Formally:-

**Max((elements(Okay)) = Okay = Most doable worth of X for a component.**

Subsequently, most doable worth of X(Not for the ultimate reply of the issue, only for a single component of arr[], which is 6 on this case) will likely be equal to absolutely the distinction between the index of the sorted and unsorted place of a component. Therefore, the Very first thing of method proves profitable.

**The thought behind calculating GCD of all absolute variations:**

For the case within the above picture:-

As we are able to see that 6, 5, and a couple of should not of their respective sorted place, Subsequently:-

- Absolute distinction of indices for component 6 = |2 – 6| = 4
- Max worth of X for component 6 = Max(elements(4)) = Max(1, 2, 4) =
**4**.

- Max worth of X for component 6 = Max(elements(4)) = Max(1, 2, 4) =
- Absolute distinction of indices for component 5 = |3 – 5| = 2
- Max worth of X for component 5 = Max(elements(2)) = Max(1, 2) =
**2**.

- Max worth of X for component 5 = Max(elements(2)) = Max(1, 2) =
- Absolute distinction of indices for component 2 = |6 – 2| = 4
- Max worth of X for component 2 = Max(elements(4)) = Max(1, 2, 4) =
**4**.

- Max worth of X for component 2 = Max(elements(4)) = Max(1, 2, 4) =

These are the utmost values of X for every component, Which aren’t initially current in its sorted place. Now we’ve to discover a Most worth of X for all unsorted parts by which they need to be at their sorted place(Formally, mentioned to make arr[] sorted) below finite variety of operations. For** X **ought to be chosen in such a approach that** **it covers all absolutely the variations i.e., **divisor** of all absolutely the variations in addition to the **best** doable**. **This may be solely completed when **X** is the **Biggest Widespread Divisor(GCD)** of all absolute variations.

**Time complexity:** O(N * log(Max)), The place Max is most component current in arr[].**Auxiliary Area:** O(1) is, As no further area is used.