0% found this document useful (0 votes)
15 views1 page

Block Swap Algorithm

Uploaded by

Dixxy Scott
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
0% found this document useful (0 votes)
15 views1 page

Block Swap Algorithm

Uploaded by

Dixxy Scott
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 1

~Block swap algorithm~

Also known as array rotation.

Operates by dividing the array into two blocks and then swapping the elements
between these blocks in a specific manner.

TIME COMPLEXITY = O(n)

The rotation is by 'd' elements.


The two blocks are 'd' and 'n - d'
Base condition -> d == 0 or d == n

APPLICATION:
-> Data shifting: To shift data cyclically such as elements in buffer array or
shift cyclic operations.

-> Memory Management: Can be used to optimize in place array rotation without using
extra memory.

-> Circular buffers: manage data movement in cyclic buffers.

CODE:
class BlockSwap{
static int[] swap(int[] arr, int k, int n){
if(k == 0 | k == n){
return arr;
}
if(k > n){
k %= n;
}
int[] result = new int[n];
for(int i = 0; i < n; i++){
result[i] = arr[(i + k)%n];
//for right rotate (n - k + 1)
}
return result;
}

public static void printArray(int[] arr) {


for (int element : arr) {
System.out.print(element + " ");
}
System.out.println();
}

public static void main(String[] args){


int[] array = {1, 5, 3, 2, 8, 9};
int a = 3;
int b = 5;
printArray(swap(array, a, b));
}

You might also like