Column Major Order is a way to represent the multidimensional array in sequential memory. It has similar functionality as row-major order, but the way of process is different.

In Column Major Order, elements of a multidimensional array are arranged sequentially column-wise which means filling all the index of the first column and then move to the next column.

**Let’s see an example**

Suppose we have some elements {1,2,3,4,5,6,7,8} which we want to insert in an array by following column-major order.

So If we insert these elements in column-major order, our 2-D array will look like

Here first fill index[0][0] and then index[1][0] which is just opposite to the row-major where we first fill all row nodes then move to the next row.

And then for second-column index[0][1] and then index[1][1], index[0][2], index[1][2] and so on.

Page Contents

## Column Major Order Formula

The Location of element A[i, j] can be obtained by evaluating expression:

**LOC (A [i, j]) = base_address + W [N (j) + (i)]**

Here,

**base_address =** address of the first element in the array.

**W =** Word size means a number of bytes occupied by each element of an Array.

**N =** Number of rows in the array.

**M =** Number of columns in the array.

Here we have taken a 2-D array **A [2, 4]** which has 2 rows and 4 columns.

Now to calculate the base address of any index using column major order we can use process given below.

It can be calculated as follow:

Here,**base_address** = 2000, **W**= 2, **N**=2, **M**=4, **i**=2, **j**=3**LOC (A [i, j])** = **base_address** + **W [M (j)** +** (i)]**

LOC (A[2, 3]) = 2000 + 2 [4(3) + 2]

= 2000 + 2 * [12 + 2]

= 2000 + 2 * 14

= 2000 + 28

= 2028