Skip to main content

Rearrange positive and negative numbers in array

Here given code implementation process.

// C Program 
// Rearrange positive and negative numbers in array
#include <stdio.h>

//Display elements of given array
void printArray(int arr[], int size)
{
	for (int i = 0; i < size; ++i)
	{
		printf("  %d", arr[i]);
	}
	printf("\n");
}
// Swapping of array elements 
void swapNode(int arr[], int a, int b)
{
	int temp = arr[a];
	arr[a] = arr[b];
	arr[b] = temp;
}
// Arrange pairwise positive and negative elements
void rearrange(int arr[], int size)
{
	int negative = 1;
	int positive = 0;
	// Loop controlling variable
	int i = 1;
	// Set positive elements in Even position in given arrays
	while (i < size && positive < size)
	{
		if (arr[positive] > 0)
		{
			// When element already positive
			positive += 2;
		}
		else if (arr[i] >= 0)
		{
			if (i < positive)
			{
				if (i % 2 == 1)
				{
					// When if swap the positive elements at odd position element
					swapNode(arr, i, positive);
					positive += 2;
				}
			}
			else
			{
				swapNode(arr, i, positive);
				positive += 2;
			}
		}
		i++;
	}
	i = 0;
	// Set negative elements in Odd position in given arrays
	while (i < size && negative < size)
	{
		if (arr[negative] < 0)
		{
			// When element already negative number
			negative += 2;
		}
		else if (arr[i] < 0)
		{
			if (i < negative)
			{
				if (i % 2 == 0)
				{
					swapNode(arr, i, negative);
					negative += 2;
				}
			}
			else
			{
				swapNode(arr, i, negative);
				negative += 2;
			}
		}
		i++;
	}
}
int main(int argc, char
	const *argv[])
{
	// Define array of integer elements
	int arr1[] = {
		-1 , -2 , -5 , 1 , -4 , 2 , 5 , 2 , 4 , -4
	};
	int arr2[] = {
		8 , 7 , 0 , -5 , 1 , -4 , -9 , 5 , 2 , 4 , -4 , -6
	};
	int arr3[] = {
		8 , 6 , 2 , 6 , -2 , 5 , 2 , -6 , 2 , -6 , 3
	};
	int arr4[] = {
		1 , 2 , 3 , 4
	};
	int arr5[] = {
		-1 , -2 , -3 , -4 , -5 , 1 , 2 , 3 , 4
	};
	// Test 1
	int size = sizeof(arr1) / sizeof(arr1[0]);
	printf("  Before Arrange \n");
	printArray(arr1, size);
	rearrange(arr1, size);
	printf("  After Arrange \n");
	printArray(arr1, size);
	// Test 2
	size = sizeof(arr2) / sizeof(arr2[0]);
	printf("\n  Before Arrange \n");
	printArray(arr2, size);
	rearrange(arr2, size);
	printf("  After Arrange \n");
	printArray(arr2, size);
	// Test 3
	size = sizeof(arr3) / sizeof(arr3[0]);
	printf("  Before Arrange \n");
	printArray(arr3, size);
	rearrange(arr3, size);
	printf("  After Arrange \n");
	printArray(arr3, size);
	// Test 4
	size = sizeof(arr4) / sizeof(arr4[0]);
	printf("\n  Before Arrange \n");
	printArray(arr4, size);
	rearrange(arr4, size);
	printf("  After Arrange \n");
	printArray(arr4, size);
	// Test 5
	size = sizeof(arr5) / sizeof(arr5[0]);
	printf("\n  Before Arrange \n");
	printArray(arr5, size);
	rearrange(arr5, size);
	printf("  After Arrange \n");
	printArray(arr5, size);
	return 0;
}

Output

  Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
  After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

  Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
  After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
  Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
  After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

  Before Arrange
  1  2  3  4
  After Arrange
  1  2  3  4

  Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
  After Arrange
  1  -2  2  -4  3  -1  4  -5  -3
/*
    Java Program
    Rearrange positive and negative numbers in array
*/
public class Arrangement
{
	//Display elements of given array
	public void printArray(int[] arr, int size)
	{
		for (int i = 0; i < size; ++i)
		{
			System.out.print("  " + arr[i] );
		}
		System.out.print("\n");
	}
	// Swapping of array elements 
	public void swapNode(int[] arr, int a, int b)
	{
		int temp = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	}
	// Arrange pairwise positive and negative elements
	public void rearrange(int[] arr, int size)
	{
		int negative = 1;
		int positive = 0;
		// Loop controlling variable
		int i = 1;
		// Set positive elements in Even position in given arrays
		while (i < size && positive < size)
		{
			if (arr[positive] > 0)
			{
				// When element already negative positive
				positive += 2;
			}
			else if (arr[i] >= 0)
			{
				if (i < positive)
				{
					if (i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						swapNode(arr, i, positive);
						positive += 2;
					}
				}
				else
				{
					swapNode(arr, i, positive);
					positive += 2;
				}
			}
			i++;
		}
		i = 0;
		// Set negative elements in Odd position in given arrays
		while (i < size && negative < size)
		{
			if (arr[negative] < 0)
			{
				// When element already number
				negative += 2;
			}
			else if (arr[i] < 0)
			{
				if (i < negative)
				{
					if (i % 2 == 0)
					{
						swapNode(arr, i, negative);
						negative += 2;
					}
				}
				else
				{
					swapNode(arr, i, negative);
					negative += 2;
				}
			}
			i++;
		}
	}
	public static void main(String args[])
	{
		Arrangement task = new Arrangement();
		// Define array of integer elements
		int[] arr1 = {
			-1 , -2 , -5 , 1 , -4 , 2 , 5 , 2 , 4 , -4
		};
		int[] arr2 = {
			8 , 7 , 0 , -5 , 1 , -4 , -9 , 5 , 2 , 4 , -4 , -6
		};
		int[] arr3 = {
			8 , 6 , 2 , 6 , -2 , 5 , 2 , -6 , 2 , -6 , 3
		};
		int[] arr4 = {
			1 , 2 , 3 , 4
		};
		int[] arr5 = {
			-1 , -2 , -3 , -4 , -5 , 1 , 2 , 3 , 4
		};
		// Test 1
		int size = arr1.length;
		System.out.print(" Before Arrange \n");
		task.printArray(arr1, size);
		task.rearrange(arr1, size);
		System.out.print(" After Arrange \n");
		task.printArray(arr1, size);
		// Test 2
		size = arr2.length;
		System.out.print("\n Before Arrange \n");
		task.printArray(arr2, size);
		task.rearrange(arr2, size);
		System.out.print(" After Arrange \n");
		task.printArray(arr2, size);
		// Test 3
		size = arr3.length;
		System.out.print(" Before Arrange \n");
		task.printArray(arr3, size);
		task.rearrange(arr3, size);
		System.out.print(" After Arrange \n");
		task.printArray(arr3, size);
		// Test 4
		size = arr4.length;
		System.out.print("\n Before Arrange \n");
		task.printArray(arr4, size);
		task.rearrange(arr4, size);
		System.out.print(" After Arrange \n");
		task.printArray(arr4, size);
		// Test 5
		size = arr5.length;
		System.out.print("\n Before Arrange \n");
		task.printArray(arr5, size);
		task.rearrange(arr5, size);
		System.out.print(" After Arrange \n");
		task.printArray(arr5, size);
	}
}

Output

 Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange
  1  2  3  4
 After Arrange
  1  2  3  4

 Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange
  1  -2  2  -4  3  -1  4  -5  -3
// Include header file
#include <iostream>

using namespace std;
/*
    C++ Program
    Rearrange positive and negative numbers in array
*/
class Arrangement
{
	public:
		//Display elements of given array
		void printArray(int arr[], int size)
		{
			for (int i = 0; i < size; ++i)
			{
				cout << "  " << arr[i];
			}
			cout << "\n";
		}
	// Swapping of array elements
	void swapNode(int arr[], int a, int b)
	{
		int temp = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	}
	// Arrange pairwise positive and negative elements
	void rearrange(int arr[], int size)
	{
		int negative = 1;
		int positive = 0;
		// Loop controlling variable
		int i = 1;
		// Set positive elements in Even position in given arrays
		while (i < size && positive < size)
		{
			if (arr[positive] > 0)
			{
				// When element already positive
				positive += 2;
			}
			else if (arr[i] >= 0)
			{
				if (i < positive)
				{
					if (i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						this->swapNode(arr, i, positive);
						positive += 2;
					}
				}
				else
				{
					this->swapNode(arr, i, positive);
					positive += 2;
				}
			}
			i++;
		}
		i = 0;
		// Set negative elements in Odd position in given arrays
		while (i < size && negative < size)
		{
			if (arr[negative] < 0)
			{
				// When element already negative number
				negative += 2;
			}
			else if (arr[i] < 0)
			{
				if (i < negative)
				{
					if (i % 2 == 0)
					{
						this->swapNode(arr, i, negative);
						negative += 2;
					}
				}
				else
				{
					this->swapNode(arr, i, negative);
					negative += 2;
				}
			}
			i++;
		}
	}
};
int main()
{
	Arrangement task = Arrangement();
	// Define array of integer elements
	int arr1[] = {
		-1 , -2 , -5 , 1 , -4 , 2 , 5 , 2 , 4 , -4
	};
	int arr2[] = {
		8 , 7 , 0 , -5 , 1 , -4 , -9 , 5 , 2 , 4 , -4 , -6
	};
	int arr3[] = {
		8 , 6 , 2 , 6 , -2 , 5 , 2 , -6 , 2 , -6 , 3
	};
	int arr4[] = {
		1 , 2 , 3 , 4
	};
	int arr5[] = {
		-1 , -2 , -3 , -4 , -5 , 1 , 2 , 3 , 4
	};
	// Test 1
	int size = sizeof(arr1) / sizeof(arr1[0]);
	cout << " Before Arrange \n";
	task.printArray(arr1, size);
	task.rearrange(arr1, size);
	cout << " After Arrange \n";
	task.printArray(arr1, size);
	// Test 2
	size = sizeof(arr2) / sizeof(arr2[0]);
	cout << "\n Before Arrange \n";
	task.printArray(arr2, size);
	task.rearrange(arr2, size);
	cout << " After Arrange \n";
	task.printArray(arr2, size);
	// Test 3
	size = sizeof(arr3) / sizeof(arr3[0]);
	cout << " Before Arrange \n";
	task.printArray(arr3, size);
	task.rearrange(arr3, size);
	cout << " After Arrange \n";
	task.printArray(arr3, size);
	// Test 4
	size = sizeof(arr4) / sizeof(arr4[0]);
	cout << "\n Before Arrange \n";
	task.printArray(arr4, size);
	task.rearrange(arr4, size);
	cout << " After Arrange \n";
	task.printArray(arr4, size);
	// Test 5
	size = sizeof(arr5) / sizeof(arr5[0]);
	cout << "\n Before Arrange \n";
	task.printArray(arr5, size);
	task.rearrange(arr5, size);
	cout << " After Arrange \n";
	task.printArray(arr5, size);
	return 0;
}

Output

 Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange
  1  2  3  4
 After Arrange
  1  2  3  4

 Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange
  1  -2  2  -4  3  -1  4  -5  -3
// Include namespace system
using System;
/*
    C# Program
    Rearrange positive and negative numbers in array
*/
public class Arrangement
{
	//Display elements of given array
	public void printArray(int[] arr, int size)
	{
		for (int i = 0; i < size; ++i)
		{
			Console.Write("  " + arr[i]);
		}
		Console.Write("\n");
	}
	// Swapping of array elements
	public void swapNode(int[] arr, int a, int b)
	{
		int temp = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	}
	// Arrange pairwise positive and negative elements
	public void rearrange(int[] arr, int size)
	{
		int negative = 1;
		int positive = 0;
		// Loop controlling variable
		int i = 1;
		// Set positive elements in Even position in given arrays
		while (i < size && positive < size)
		{
			if (arr[positive] > 0)
			{
				// When element already positive
				positive += 2;
			}
			else if (arr[i] >= 0)
			{
				if (i < positive)
				{
					if (i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						swapNode(arr, i, positive);
						positive += 2;
					}
				}
				else
				{
					swapNode(arr, i, positive);
					positive += 2;
				}
			}
			i++;
		}
		i = 0;
		// Set negative elements in Odd position in given arrays
		while (i < size && negative < size)
		{
			if (arr[negative] < 0)
			{
				// When element already negative number
				negative += 2;
			}
			else if (arr[i] < 0)
			{
				if (i < negative)
				{
					if (i % 2 == 0)
					{
						swapNode(arr, i, negative);
						negative += 2;
					}
				}
				else
				{
					swapNode(arr, i, negative);
					negative += 2;
				}
			}
			i++;
		}
	}
	public static void Main(String[] args)
	{
		Arrangement task = new Arrangement();
		// Define array of integer elements
		int[] arr1 = {
			-1 , -2 , -5 , 1 , -4 , 2 , 5 , 2 , 4 , -4
		};
		int[] arr2 = {
			8 , 7 , 0 , -5 , 1 , -4 , -9 , 5 , 2 , 4 , -4 , -6
		};
		int[] arr3 = {
			8 , 6 , 2 , 6 , -2 , 5 , 2 , -6 , 2 , -6 , 3
		};
		int[] arr4 = {
			1 , 2 , 3 , 4
		};
		int[] arr5 = {
			-1 , -2 , -3 , -4 , -5 , 1 , 2 , 3 , 4
		};
		// Test 1
		int size = arr1.Length;
		Console.Write(" Before Arrange \n");
		task.printArray(arr1, size);
		task.rearrange(arr1, size);
		Console.Write(" After Arrange \n");
		task.printArray(arr1, size);
		// Test 2
		size = arr2.Length;
		Console.Write("\n Before Arrange \n");
		task.printArray(arr2, size);
		task.rearrange(arr2, size);
		Console.Write(" After Arrange \n");
		task.printArray(arr2, size);
		// Test 3
		size = arr3.Length;
		Console.Write(" Before Arrange \n");
		task.printArray(arr3, size);
		task.rearrange(arr3, size);
		Console.Write(" After Arrange \n");
		task.printArray(arr3, size);
		// Test 4
		size = arr4.Length;
		Console.Write("\n Before Arrange \n");
		task.printArray(arr4, size);
		task.rearrange(arr4, size);
		Console.Write(" After Arrange \n");
		task.printArray(arr4, size);
		// Test 5
		size = arr5.Length;
		Console.Write("\n Before Arrange \n");
		task.printArray(arr5, size);
		task.rearrange(arr5, size);
		Console.Write(" After Arrange \n");
		task.printArray(arr5, size);
	}
}

Output

 Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange
  1  2  3  4
 After Arrange
  1  2  3  4

 Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange
  1  -2  2  -4  3  -1  4  -5  -3
<?php
/*
    Php Program
    Rearrange positive and negative numbers in array
*/
class Arrangement
{
	//Display elements of given array
	public	function printArray( & $arr, $size)
	{
		for ($i = 0; $i < $size; ++$i)
		{
			echo "  ". $arr[$i];
		}
		echo "\n";
	}
	// Swapping of array elements
	public	function swapNode( & $arr, $a, $b)
	{
		$temp = $arr[$a];
		$arr[$a] = $arr[$b];
		$arr[$b] = $temp;
	}
	// Arrange pairwise positive and negative elements
	public	function rearrange( & $arr, $size)
	{
		$negative = 1;
		$positive = 0;
		// Loop controlling variable
		$i = 1;
		// Set positive elements in Even position in given arrays
		while ($i < $size && $positive < $size)
		{
			if ($arr[$positive] > 0)
			{
				// When element already positive
				$positive += 2;
			}
			else if ($arr[$i] >= 0)
			{
				if ($i < $positive)
				{
					if ($i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						$this->swapNode($arr, $i, $positive);
						$positive += 2;
					}
				}
				else
				{
					$this->swapNode($arr, $i, $positive);
					$positive += 2;
				}
			}
			$i++;
		}
		$i = 0;
		// Set negative elements in Odd position in given arrays
		while ($i < $size && $negative < $size)
		{
			if ($arr[$negative] < 0)
			{
				// When element already negative number
				$negative += 2;
			}
			else if ($arr[$i] < 0)
			{
				if ($i < $negative)
				{
					if ($i % 2 == 0)
					{
						$this->swapNode($arr, $i, $negative);
						$negative += 2;
					}
				}
				else
				{
					$this->swapNode($arr, $i, $negative);
					$negative += 2;
				}
			}
			$i++;
		}
	}
}

function main()
{
	$task = new Arrangement();
	// Define array of integer elements
	$arr1 = array(-1, -2, -5, 1, -4, 2, 5, 2, 4, -4);
	$arr2 = array(8, 7, 0, -5, 1, -4, -9, 5, 2, 4, -4, -6);
	$arr3 = array(8, 6, 2, 6, -2, 5, 2, -6, 2, -6, 3);
	$arr4 = array(1, 2, 3, 4);
	$arr5 = array(-1, -2, -3, -4, -5, 1, 2, 3, 4);
	// Test 1
	$size = count($arr1);
	echo " Before Arrange \n";
	$task->printArray($arr1, $size);
	$task->rearrange($arr1, $size);
	echo " After Arrange \n";
	$task->printArray($arr1, $size);
	// Test 2
	$size = count($arr2);
	echo "\n Before Arrange \n";
	$task->printArray($arr2, $size);
	$task->rearrange($arr2, $size);
	echo " After Arrange \n";
	$task->printArray($arr2, $size);
	// Test 3
	$size = count($arr3);
	echo " Before Arrange \n";
	$task->printArray($arr3, $size);
	$task->rearrange($arr3, $size);
	echo " After Arrange \n";
	$task->printArray($arr3, $size);
	// Test 4
	$size = count($arr4);
	echo "\n Before Arrange \n";
	$task->printArray($arr4, $size);
	$task->rearrange($arr4, $size);
	echo " After Arrange \n";
	$task->printArray($arr4, $size);
	// Test 5
	$size = count($arr5);
	echo "\n Before Arrange \n";
	$task->printArray($arr5, $size);
	$task->rearrange($arr5, $size);
	echo " After Arrange \n";
	$task->printArray($arr5, $size);
}
main();

Output

 Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange
  1  2  3  4
 After Arrange
  1  2  3  4

 Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange
  1  -2  2  -4  3  -1  4  -5  -3
/*
    Node Js Program
    Rearrange positive and negative numbers in array
*/
class Arrangement
{
	//Display elements of given array
	printArray(arr, size)
	{
		for (var i = 0; i < size; ++i)
		{
			process.stdout.write("  " + arr[i]);
		}
		process.stdout.write("\n");
	}
	// Swapping of array elements
	swapNode(arr, a, b)
	{
		var temp = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	}
	// Arrange pairwise positive and negative elements
	rearrange(arr, size)
	{
		var negative = 1;
		var positive = 0;
		// Loop controlling variable
		var i = 1;
		// Set positive elements in Even position in given arrays
		while (i < size && positive < size)
		{
			if (arr[positive] > 0)
			{
				// When element already positive
				positive += 2;
			}
			else if (arr[i] >= 0)
			{
				if (i < positive)
				{
					if (i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						this.swapNode(arr, i, positive);
						positive += 2;
					}
				}
				else
				{
					this.swapNode(arr, i, positive);
					positive += 2;
				}
			}
			i++;
		}
		i = 0;
		// Set negative elements in Odd position in given arrays
		while (i < size && negative < size)
		{
			if (arr[negative] < 0)
			{
				// When element already negative number
				negative += 2;
			}
			else if (arr[i] < 0)
			{
				if (i < negative)
				{
					if (i % 2 == 0)
					{
						this.swapNode(arr, i, negative);
						negative += 2;
					}
				}
				else
				{
					this.swapNode(arr, i, negative);
					negative += 2;
				}
			}
			i++;
		}
	}
}

function main()
{
	var task = new Arrangement();
	// Define array of integer elements
	var arr1 = [-1, -2, -5, 1, -4, 2, 5, 2, 4, -4];
	var arr2 = [8, 7, 0, -5, 1, -4, -9, 5, 2, 4, -4, -6];
	var arr3 = [8, 6, 2, 6, -2, 5, 2, -6, 2, -6, 3];
	var arr4 = [1, 2, 3, 4];
	var arr5 = [-1, -2, -3, -4, -5, 1, 2, 3, 4];
	// Test 1
	var size = arr1.length;
	process.stdout.write(" Before Arrange \n");
	task.printArray(arr1, size);
	task.rearrange(arr1, size);
	process.stdout.write(" After Arrange \n");
	task.printArray(arr1, size);
	// Test 2
	size = arr2.length;
	process.stdout.write("\n Before Arrange \n");
	task.printArray(arr2, size);
	task.rearrange(arr2, size);
	process.stdout.write(" After Arrange \n");
	task.printArray(arr2, size);
	// Test 3
	size = arr3.length;
	process.stdout.write(" Before Arrange \n");
	task.printArray(arr3, size);
	task.rearrange(arr3, size);
	process.stdout.write(" After Arrange \n");
	task.printArray(arr3, size);
	// Test 4
	size = arr4.length;
	process.stdout.write("\n Before Arrange \n");
	task.printArray(arr4, size);
	task.rearrange(arr4, size);
	process.stdout.write(" After Arrange \n");
	task.printArray(arr4, size);
	// Test 5
	size = arr5.length;
	process.stdout.write("\n Before Arrange \n");
	task.printArray(arr5, size);
	task.rearrange(arr5, size);
	process.stdout.write(" After Arrange \n");
	task.printArray(arr5, size);
}
main();

Output

 Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange
  1  2  3  4
 After Arrange
  1  2  3  4

 Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange
  1  -2  2  -4  3  -1  4  -5  -3
#  Python 3 Program
#  Rearrange positive and negative numbers in array

class Arrangement :
	# Display elements of given array
	def printArray(self, arr, size) :
		i = 0
		while (i < size) :
			print("  ", arr[i], end = "")
			i += 1
		
		print(end = "\n")
	
	#  Swapping of array elements
	def swapNode(self, arr, a, b) :
		temp = arr[a]
		arr[a] = arr[b]
		arr[b] = temp
	
	#  Arrange pairwise positive and negative elements
	def rearrange(self, arr, size) :
		negative = 1
		positive = 0
		#  Loop controlling variable
		i = 1
		#  Set positive elements in Even position in given arrays
		while (i < size and positive < size) :
			if (arr[positive] > 0) :
				#  When element already positive
				positive += 2
			
			elif(arr[i] >= 0) :
				if (i < positive) :
					if (i % 2 == 1) :
						#  When if swap the positive elements at odd position element
						self.swapNode(arr, i, positive)
						positive += 2
					
				else :
					self.swapNode(arr, i, positive)
					positive += 2
				
			
			i += 1
		
		i = 0
		#  Set negative elements in Odd position in given arrays
		while (i < size and negative < size) :
			if (arr[negative] < 0) :
				#  When element already negative number
				negative += 2
			
			elif(arr[i] < 0) :
				if (i < negative) :
					if (i % 2 == 0) :
						self.swapNode(arr, i, negative)
						negative += 2
					
				else :
					self.swapNode(arr, i, negative)
					negative += 2
				
			
			i += 1
		
	

def main() :
	task = Arrangement()
	#  Define array of integer elements
	arr1 = [-1, -2, -5, 1, -4, 2, 5, 2, 4, -4]
	arr2 = [8, 7, 0, -5, 1, -4, -9, 5, 2, 4, -4, -6]
	arr3 = [8, 6, 2, 6, -2, 5, 2, -6, 2, -6, 3]
	arr4 = [1, 2, 3, 4]
	arr5 = [-1, -2, -3, -4, -5, 1, 2, 3, 4]
	#  Test 1
	size = len(arr1)
	print(" Before Arrange ")
	task.printArray(arr1, size)
	task.rearrange(arr1, size)
	print(" After Arrange ")
	task.printArray(arr1, size)
	#  Test 2
	size = len(arr2)
	print("\n Before Arrange ")
	task.printArray(arr2, size)
	task.rearrange(arr2, size)
	print(" After Arrange ")
	task.printArray(arr2, size)
	#  Test 3
	size = len(arr3)
	print(" Before Arrange ")
	task.printArray(arr3, size)
	task.rearrange(arr3, size)
	print(" After Arrange ")
	task.printArray(arr3, size)
	#  Test 4
	size = len(arr4)
	print("\n Before Arrange ")
	task.printArray(arr4, size)
	task.rearrange(arr4, size)
	print(" After Arrange ")
	task.printArray(arr4, size)
	#  Test 5
	size = len(arr5)
	print("\n Before Arrange ")
	task.printArray(arr5, size)
	task.rearrange(arr5, size)
	print(" After Arrange ")
	task.printArray(arr5, size)

if __name__ == "__main__": main()

Output

 Before Arrange
   -1   -2   -5   1   -4   2   5   2   4   -4
 After Arrange
   1   -2   2   -1   5   -5   2   -4   4   -4

 Before Arrange
   8   7   0   -5   1   -4   -9   5   2   4   -4   -6
 After Arrange
   8   -5   0   -4   1   -9   5   -4   2   -6   4   7
 Before Arrange
   8   6   2   6   -2   5   2   -6   2   -6   3
 After Arrange
   8   -2   2   -6   6   -6   2   6   2   5   3

 Before Arrange
   1   2   3   4
 After Arrange
   1   2   3   4

 Before Arrange
   -1   -2   -3   -4   -5   1   2   3   4
 After Arrange
   1   -2   2   -4   3   -1   4   -5   -3
#  Ruby Program
#  Rearrange positive and negative numbers in array

class Arrangement 
	# Display elements of given array
	def printArray(arr, size) 
		i = 0
		while (i < size) 
			print("  ", arr[i])
			i += 1
		end

		print("\n")
	end

	#  Swapping of array elements
	def swapNode(arr, a, b) 
		temp = arr[a]
		arr[a] = arr[b]
		arr[b] = temp
	end

	#  Arrange pairwise positive and negative elements
	def rearrange(arr, size) 
		negative = 1
		positive = 0
		#  Loop controlling variable
		i = 1
		#  Set positive elements in Even position in given arrays
		while (i < size && positive < size) 
			if (arr[positive] > 0) 
				#  When element already positive
				positive += 2
			elsif(arr[i] >= 0) 
				if (i < positive) 
					if (i % 2 == 1) 
						#  When if swap the positive elements at odd position element
						self.swapNode(arr, i, positive)
						positive += 2
					end

				else 
					self.swapNode(arr, i, positive)
					positive += 2
				end

			end

			i += 1
		end

		i = 0
		#  Set negative elements in Odd position in given arrays
		while (i < size && negative < size) 
			if (arr[negative] < 0) 
				#  When element already negative number
				negative += 2
			elsif(arr[i] < 0) 
				if (i < negative) 
					if (i % 2 == 0) 
						self.swapNode(arr, i, negative)
						negative += 2
					end

				else 
					self.swapNode(arr, i, negative)
					negative += 2
				end

			end

			i += 1
		end

	end

end

def main() 
	task = Arrangement.new()
	#  Define array of integer elements
	arr1 = [-1, -2, -5, 1, -4, 2, 5, 2, 4, -4]
	arr2 = [8, 7, 0, -5, 1, -4, -9, 5, 2, 4, -4, -6]
	arr3 = [8, 6, 2, 6, -2, 5, 2, -6, 2, -6, 3]
	arr4 = [1, 2, 3, 4]
	arr5 = [-1, -2, -3, -4, -5, 1, 2, 3, 4]
	#  Test 1
	size = arr1.length
	print(" Before Arrange \n")
	task.printArray(arr1, size)
	task.rearrange(arr1, size)
	print(" After Arrange \n")
	task.printArray(arr1, size)
	#  Test 2
	size = arr2.length
	print("\n Before Arrange \n")
	task.printArray(arr2, size)
	task.rearrange(arr2, size)
	print(" After Arrange \n")
	task.printArray(arr2, size)
	#  Test 3
	size = arr3.length
	print(" Before Arrange \n")
	task.printArray(arr3, size)
	task.rearrange(arr3, size)
	print(" After Arrange \n")
	task.printArray(arr3, size)
	#  Test 4
	size = arr4.length
	print("\n Before Arrange \n")
	task.printArray(arr4, size)
	task.rearrange(arr4, size)
	print(" After Arrange \n")
	task.printArray(arr4, size)
	#  Test 5
	size = arr5.length
	print("\n Before Arrange \n")
	task.printArray(arr5, size)
	task.rearrange(arr5, size)
	print(" After Arrange \n")
	task.printArray(arr5, size)
end

main()

Output

 Before Arrange 
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange 
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange 
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange 
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange 
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange 
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange 
  1  2  3  4
 After Arrange 
  1  2  3  4

 Before Arrange 
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange 
  1  -2  2  -4  3  -1  4  -5  -3
/*
    Scala Program
    Rearrange positive and negative numbers in array
*/
class Arrangement
{
	//Display elements of given array
	def printArray(arr: Array[Int], size: Int): Unit = {
		var i: Int = 0;
		while (i < size)
		{
			print("  " + arr(i));
			i += 1;
		}
		print("\n");
	}
	// Swapping of array elements
	def swapNode(arr: Array[Int], a: Int, b: Int): Unit = {
		var temp: Int = arr(a);
		arr(a) = arr(b);
		arr(b) = temp;
	}
	// Arrange pairwise positive and negative elements
	def rearrange(arr: Array[Int], size: Int): Unit = {
		var negative: Int = 1;
		var positive: Int = 0;
		// Loop controlling variable
		var i: Int = 1;
		// Set positive elements in Even position in given arrays
		while (i < size && positive < size)
		{
			if (arr(positive) > 0)
			{
				// When element already positive
				positive += 2;
			}
			else if (arr(i) >= 0)
			{
				if (i < positive)
				{
					if (i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						this.swapNode(arr, i, positive);
						positive += 2;
					}
				}
				else
				{
					this.swapNode(arr, i, positive);
					positive += 2;
				}
			}
			i += 1;
		}
		i = 0;
		// Set negative elements in Odd position in given arrays
		while (i < size && negative < size)
		{
			if (arr(negative) < 0)
			{
				// When element already negative number
				negative += 2;
			}
			else if (arr(i) < 0)
			{
				if (i < negative)
				{
					if (i % 2 == 0)
					{
						this.swapNode(arr, i, negative);
						negative += 2;
					}
				}
				else
				{
					this.swapNode(arr, i, negative);
					negative += 2;
				}
			}
			i += 1;
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Arrangement = new Arrangement();
		// Define array of integer elements
		var arr1: Array[Int] = Array(-1, -2, -5, 1, -4, 2, 5, 2, 4, -4);
		var arr2: Array[Int] = Array(8, 7, 0, -5, 1, -4, -9, 5, 2, 4, -4, -6);
		var arr3: Array[Int] = Array(8, 6, 2, 6, -2, 5, 2, -6, 2, -6, 3);
		var arr4: Array[Int] = Array(1, 2, 3, 4);
		var arr5: Array[Int] = Array(-1, -2, -3, -4, -5, 1, 2, 3, 4);
		// Test 1
		var size: Int = arr1.length;
		print(" Before Arrange \n");
		task.printArray(arr1, size);
		task.rearrange(arr1, size);
		print(" After Arrange \n");
		task.printArray(arr1, size);
		// Test 2
		size = arr2.length;
		print("\n Before Arrange \n");
		task.printArray(arr2, size);
		task.rearrange(arr2, size);
		print(" After Arrange \n");
		task.printArray(arr2, size);
		// Test 3
		size = arr3.length;
		print(" Before Arrange \n");
		task.printArray(arr3, size);
		task.rearrange(arr3, size);
		print(" After Arrange \n");
		task.printArray(arr3, size);
		// Test 4
		size = arr4.length;
		print("\n Before Arrange \n");
		task.printArray(arr4, size);
		task.rearrange(arr4, size);
		print(" After Arrange \n");
		task.printArray(arr4, size);
		// Test 5
		size = arr5.length;
		print("\n Before Arrange \n");
		task.printArray(arr5, size);
		task.rearrange(arr5, size);
		print(" After Arrange \n");
		task.printArray(arr5, size);
	}
}

Output

 Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange
  1  2  3  4
 After Arrange
  1  2  3  4

 Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange
  1  -2  2  -4  3  -1  4  -5  -3
/*
    Swift 4 Program
    Rearrange positive and negative numbers in array
*/
class Arrangement
{
	//Display elements of given array
	func printArray(_ arr: [Int], _ size: Int)
	{
		var i: Int = 0;
		while (i < size)
		{
			print("  ", arr[i], terminator: "");
			i += 1;
		}
		print(terminator: "\n");
	}
	// Swapping of array elements
	func swapNode(_ arr: inout[Int], _ a: Int, _ b: Int)
	{
		let temp: Int = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	}
	// Arrange pairwise positive and negative elements
	func rearrange(_ arr: inout[Int], _ size: Int)
	{
		var negative: Int = 1;
		var positive: Int = 0;
		// Loop controlling variable
		var i: Int = 1;
		// Set positive elements in Even position in given arrays
		while (i < size && positive < size)
		{
			if (arr[positive] > 0)
			{
				// When element already positive
				positive += 2;
			}
			else if (arr[i] >= 0)
			{
				if (i < positive)
				{
					if (i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						self.swapNode(&arr, i, positive);
						positive += 2;
					}
				}
				else
				{
					self.swapNode(&arr, i, positive);
					positive += 2;
				}
			}
			i += 1;
		}
		i = 0;
		// Set negative elements in Odd position in given arrays
		while (i < size && negative < size)
		{
			if (arr[negative] < 0)
			{
				// When element already negative number
				negative += 2;
			}
			else if (arr[i] < 0)
			{
				if (i < negative)
				{
					if (i % 2 == 0)
					{
						self.swapNode(&arr, i, negative);
						negative += 2;
					}
				}
				else
				{
					self.swapNode(&arr, i, negative);
					negative += 2;
				}
			}
			i += 1;
		}
	}
}
func main()
{
	let task: Arrangement = Arrangement();
	// Define array of integer elements
	var arr1: [Int] = [-1, -2, -5, 1, -4, 2, 5, 2, 4, -4];
	var arr2: [Int] = [8, 7, 0, -5, 1, -4, -9, 5, 2, 4, -4, -6];
	var arr3: [Int] = [8, 6, 2, 6, -2, 5, 2, -6, 2, -6, 3];
	var arr4: [Int] = [1, 2, 3, 4];
	var arr5: [Int] = [-1, -2, -3, -4, -5, 1, 2, 3, 4];
	// Test 1
	var size: Int = arr1.count;
	print(" Before Arrange ");
	task.printArray(arr1, size);
	task.rearrange(&arr1, size);
	print(" After Arrange ");
	task.printArray(arr1, size);
	// Test 2
	size = arr2.count;
	print("\n Before Arrange ");
	task.printArray(arr2, size);
	task.rearrange(&arr2, size);
	print(" After Arrange ");
	task.printArray(arr2, size);
	// Test 3
	size = arr3.count;
	print(" Before Arrange ");
	task.printArray(arr3, size);
	task.rearrange(&arr3, size);
	print(" After Arrange ");
	task.printArray(arr3, size);
	// Test 4
	size = arr4.count;
	print("\n Before Arrange ");
	task.printArray(arr4, size);
	task.rearrange(&arr4, size);
	print(" After Arrange ");
	task.printArray(arr4, size);
	// Test 5
	size = arr5.count;
	print("\n Before Arrange ");
	task.printArray(arr5, size);
	task.rearrange(&arr5, size);
	print(" After Arrange ");
	task.printArray(arr5, size);
}
main();

Output

 Before Arrange
   -1   -2   -5   1   -4   2   5   2   4   -4
 After Arrange
   1   -2   2   -1   5   -5   2   -4   4   -4

 Before Arrange
   8   7   0   -5   1   -4   -9   5   2   4   -4   -6
 After Arrange
   8   -5   0   -4   1   -9   5   -4   2   -6   4   7
 Before Arrange
   8   6   2   6   -2   5   2   -6   2   -6   3
 After Arrange
   8   -2   2   -6   6   -6   2   6   2   5   3

 Before Arrange
   1   2   3   4
 After Arrange
   1   2   3   4

 Before Arrange
   -1   -2   -3   -4   -5   1   2   3   4
 After Arrange
   1   -2   2   -4   3   -1   4   -5   -3
/*
    Kotlin Program
    Rearrange positive and negative numbers in array
*/
class Arrangement
{
	//Display elements of given array
	fun printArray(arr: Array<Int>, size: Int): Unit
	{
		var i: Int = 0;
		while (i < size)
		{
			print("  " + arr[i]);
			i += 1;
		}
		print("\n");
	}
	// Swapping of array elements
	fun swapNode(arr: Array<Int>, a: Int, b: Int): Unit
	{
		var temp: Int = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	}
	// Arrange pairwise positive and negative elements
	fun rearrange(arr: Array<Int>, size: Int): Unit
	{
		var negative: Int = 1;
		var positive: Int = 0;
		// Loop controlling variable
		var i: Int = 1;
		// Set positive elements in Even position in given arrays
		while (i<size && positive<size)
		{
			if (arr[positive] > 0)
			{
				// When element already positive
				positive += 2;
			}
			else
			if (arr[i] >= 0)
			{
				if (i<positive)
				{
					if (i % 2 == 1)
					{
						// When if swap the positive elements at odd position element
						this.swapNode(arr, i, positive);
						positive += 2;
					}
				}
				else
				{
					this.swapNode(arr, i, positive);
					positive += 2;
				}
			}
			i += 1;
		}
		i = 0;
		// Set negative elements in Odd position in given arrays
		while (i < size && negative < size)
		{
			if (arr[negative] < 0)
			{
				// When element already negative number
				negative += 2;
			}
			else
			if (arr[i] < 0)
			{
				if (i < negative)
				{
					if (i % 2 == 0)
					{
						this.swapNode(arr, i, negative);
						negative += 2;
					}
				}
				else
				{
					this.swapNode(arr, i, negative);
					negative += 2;
				}
			}
			i += 1;
		}
	}
}
fun main(args: Array<String>): Unit
{
	var task: Arrangement = Arrangement();
	// Define array of integer elements
	var arr1: Array<Int> = arrayOf(-1, -2, -5, 1, -4, 2, 5, 2, 4, -4);
	var arr2: Array<Int> = arrayOf(8, 7, 0, -5, 1, -4, -9, 5, 2, 4, -4, -6);
	var arr3: Array<Int> = arrayOf(8, 6, 2, 6, -2, 5, 2, -6, 2, -6, 3);
	var arr4: Array<Int> = arrayOf(1, 2, 3, 4);
	var arr5: Array<Int> = arrayOf(-1, -2, -3, -4, -5, 1, 2, 3, 4);
	// Test 1
	var size: Int = arr1.count();
	print(" Before Arrange \n");
	task.printArray(arr1, size);
	task.rearrange(arr1, size);
	print(" After Arrange \n");
	task.printArray(arr1, size);
	// Test 2
	size = arr2.count();
	print("\n Before Arrange \n");
	task.printArray(arr2, size);
	task.rearrange(arr2, size);
	print(" After Arrange \n");
	task.printArray(arr2, size);
	// Test 3
	size = arr3.count();
	print(" Before Arrange \n");
	task.printArray(arr3, size);
	task.rearrange(arr3, size);
	print(" After Arrange \n");
	task.printArray(arr3, size);
	// Test 4
	size = arr4.count();
	print("\n Before Arrange \n");
	task.printArray(arr4, size);
	task.rearrange(arr4, size);
	print(" After Arrange \n");
	task.printArray(arr4, size);
	// Test 5
	size = arr5.count();
	print("\n Before Arrange \n");
	task.printArray(arr5, size);
	task.rearrange(arr5, size);
	print(" After Arrange \n");
	task.printArray(arr5, size);
}

Output

 Before Arrange
  -1  -2  -5  1  -4  2  5  2  4  -4
 After Arrange
  1  -2  2  -1  5  -5  2  -4  4  -4

 Before Arrange
  8  7  0  -5  1  -4  -9  5  2  4  -4  -6
 After Arrange
  8  -5  0  -4  1  -9  5  -4  2  -6  4  7
 Before Arrange
  8  6  2  6  -2  5  2  -6  2  -6  3
 After Arrange
  8  -2  2  -6  6  -6  2  6  2  5  3

 Before Arrange
  1  2  3  4
 After Arrange
  1  2  3  4

 Before Arrange
  -1  -2  -3  -4  -5  1  2  3  4
 After Arrange
  1  -2  2  -4  3  -1  4  -5  -3




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment