Data Structures - Merge Sort

 

Merge sort

Merge sort is the algorithm which follows divide and conquer approach. Consider an array A of n number of elements. The algorithm processes the elements in 3 steps.

  1. If A Contains 0 or 1 elements then it is already sorted, otherwise, Divide A into two sub-array of equal number of elements.
  2. Conquer means sort the two sub-arrays recursively using the merge sort.
  3. Combine the sub-arrays to form a single final sorted array maintaining the ordering of the array.

The main idea behind merge sort is that, the short list takes less time to be sorted.

Example :

Consider the following array of 7 elements. Sort the array by using merge sort. A = {10522345217}  


Merge sort

Algorithm

  • Step 1: [INITIALIZE] SET I = BEG, J = MID + 1, INDEX = 0
  • Step 2: Repeat while (I <= MID) AND (J<=END)
    IF ARR[I] < ARR[J]
    SET TEMP[INDEX] = ARR[I]
    SET I = I + 1
    ELSE
    SET TEMP[INDEX] = ARR[J]
    SET J = J + 1
    [END OF IF]
    SET INDEX = INDEX + 1
    [END OF LOOP]
    Step 3: [Copy the remaining
    elements of right sub-array, if
    any]
    IF I > MID
    Repeat while J <= END
    SET TEMP[INDEX] = ARR[J]
    SET INDEX = INDEX + 1, SET J = J + 1
    [END OF LOOP]
    [Copy the remaining elements of
    left sub-array, if any]
    ELSE
    Repeat while I <= MID
    SET TEMP[INDEX] = ARR[I]
    SET INDEX = INDEX + 1, SET I = I + 1
    [END OF LOOP]
    [END OF IF]
  • Step 4: [Copy the contents of TEMP back to ARR] SET K = 0
  • Step 5: Repeat while K < INDEX
    SET ARR[K] = TEMP[K]
    SET K = K + 1
    [END OF LOOP]
  • Step 6: Exit

Comments

Popular posts from this blog

DBMS - Program 6 - Insurance Database

Types of Addressing modes

Java - Swing