we can use the block swap algorithm for array rotation in rotate(arr[],d,n) suppose A=arr[0..d-1] and B=arr[d..n] now B is divided into 2 parts B1 and B2 such that A nd B2 have same size; Now we block swap A with B2 that AB1B2 becomes B2B1A now we can apply the same algo recursively for B1A as B2 is at its right place.... rotate will take two parameters start and end
Given a Binary Tree, find vertical sum of the nodes that are in same vertical line. Print all sums through different vertical lines. Examples: 1 / \ 2 3 / \ / \ 4 5 6 7 The tree has 5 vertical lines Vertical-Line-1 has only one node 4 => vertical sum is 4 Vertical-Line-2: has only one node 2=> vertical sum is 2 Vertical-Line-3: has three nodes: 1,5,6 => vertical sum is 1+5+6 = 12 Vertical-Line-4: has only one node 3 => vertical sum is 3 Vertical-Line-5: has only one node 7 => vertical sum is 7 So expected output is 4, 2, 12, 3 and 7
we can use the block swap algorithm for array rotation
ReplyDeletein rotate(arr[],d,n)
suppose A=arr[0..d-1] and B=arr[d..n]
now B is divided into 2 parts B1 and B2 such that A nd B2 have same size;
Now we block swap A with B2 that AB1B2 becomes B2B1A
now we can apply the same algo recursively for B1A as B2 is at its right place....
rotate will take two parameters start and end
we can also specify the left and right rotation to change the algorithm
ReplyDelete@Navin yes this can be solved by block swap algorithm.There are different swap algorithm which can also be used..:)
ReplyDelete