# Combine array elements by occurrence sequence

Here given code implementation process.

``````//C Program
//Arrange array elements by occurrence sequence
#include <stdio.h>

//Print the array element
void print_data(int arr[],int size)
{

for(int i=0;i<size;i++)
{
printf("%4d",arr[i] );
}
printf("\n");
}

void arrange(int arr[],int size,int index,int *counter)
{
if(index<0)
{
return;
}
//Get element
int data=arr[index];

arrange(arr,size,index-1,counter);

for (int i = *counter; i < size && *counter<size ; ++i)
{
if(arr[i]==data )
{
//swap element value
arr[i]=arr[*counter];
arr[*counter]=data;
(*counter)=*counter+1;
}

}
}

int main()
{

int arr[] = { 5, 4,1,3, 5, 5, 3, 1, 2, 2, 4 ,3};
//Get the size of array
int size=(sizeof(arr)/sizeof(arr[0]));

int counter = 1;
printf("  Before Combine \n");
print_data(arr,size);
printf("  After Combine \n");
arrange(arr,size,size-1,&counter);
print_data(arr,size);

return 0;
}```
```

#### Output

``````  Before Combine
5   4   1   3   5   5   3   1   2   2   4   3
After Combine
5   5   5   4   4   1   1   3   3   3   2   2``````
``````/*
C++ Program
Arrange array elements by occurrence sequence
*/
#include<iostream>

using namespace std;

class MyArray {
public:
int counter;
MyArray() {
this->counter = 0;
}
//Print array elements
void print_data(int arr[], int size) {
for (int i = 0; i < size; i++) {
cout << " " << arr[i];
}
cout << "\n";
}
void arrange(int arr[], int size, int index) {
if (index < 0) {
return;
}
//Get element
int data = arr[index];
this->arrange(arr, size, index - 1);
for (int i = this->counter; i < size && this->counter < size; ++i) {
if (arr[i] == data) {
//swap element value
arr[i] = arr[this->counter];
arr[this->counter] = data;
this->counter = this->counter + 1;
}
}
}
void combine_element(int arr[], int size) {
this->counter = 1;
this->arrange(arr, size, size - 1);
}
};
int main() {
MyArray obj ;
int arr[] = {
5,
4,
1,
3,
5,
5,
3,
1,
2,
2,
4,
3
};
//Get the size of array
int size = sizeof(arr) / sizeof(arr[0]);
cout << " Before Combine \n";
obj.print_data(arr, size);
cout << " After Combine \n";
obj.combine_element(arr, size);
obj.print_data(arr, size);
return 0;
}```
```

#### Output

`````` Before Combine
5 4 1 3 5 5 3 1 2 2 4 3
After Combine
5 5 5 4 4 1 1 3 3 3 2 2``````
``````/*
Java Program
Arrange array elements by occurrence sequence
*/
public class MyArray {

public int counter ;

public MyArray()
{
counter = 0;
}

//Print array elements
public void print_data(int []arr,int size)
{

for(int i = 0; i < size; i++)
{
System.out.print("  "+arr[i] );
}
System.out.print("\n");
}

public void arrange(int []arr,int size,int index)
{
if(index<0)
{
return;
}
//Get element
int data=arr[index];

arrange(arr,size,index-1);

for (int i = counter; i < size && counter<size ; ++i)
{
if(arr[i]==data )
{
//swap element value
arr[i] = arr[counter];
arr[counter] = data;
counter = counter+1;
}
}
}
void combine_element(int arr[],int size)
{
counter = 1;
arrange(arr,size,size-1);
}

public static void main(String[] args) {

MyArray obj = new MyArray();

int []arr = { 5, 4,1,3, 5, 5, 3, 1, 2, 2, 4 ,3};
//Get the size of array
int size=arr.length;

System.out.print("  Before Combine \n");
obj.print_data(arr,size);
System.out.print("  After Combine \n");
obj.combine_element(arr,size);
obj.print_data(arr,size);

}
}```
```

#### Output

`````` Before Combine
5 4 1 3 5 5 3 1 2 2 4 3
After Combine
5 5 5 4 4 1 1 3 3 3 2 2``````
``````/*
C# Program
Arrange array elements by occurrence sequence
*/
using System;
public class MyArray {

public int counter;

public MyArray() {
counter = 0;
}

//Print array elements
public void print_data(int[] arr, int size) {

for (int i = 0; i < size; i++) {
Console.Write("  " + arr[i]);
}
Console.Write("\n");
}

public void arrange(int[] arr, int size, int index) {
if (index < 0) {
return;
}
//Get element
int data = arr[index];

arrange(arr, size, index - 1);

for (int i = counter; i < size && counter < size; ++i) {
if (arr[i] == data) {
//swap element value
arr[i] = arr[counter];
arr[counter] = data;
counter = counter + 1;
}
}
}
void combine_element(int []arr, int size) {
counter = 1;
arrange(arr, size, size - 1);
}

public static void Main(String[] args) {

MyArray obj = new MyArray();

int[] arr = {
5,
4,
1,
3,
5,
5,
3,
1,
2,
2,
4,
3
};
//Get the size of array
int size = arr.Length;

Console.Write("  Before Combine \n");
obj.print_data(arr, size);
Console.Write("  After Combine \n");
obj.combine_element(arr, size);
obj.print_data(arr, size);

}
}```
```

#### Output

``````  Before Combine
5  4  1  3  5  5  3  1  2  2  4  3
After Combine
5  5  5  4  4  1  1  3  3  3  2  2``````
``````<?php
/*
Php Program
Arrange array elements by occurrence sequence
*/
class MyArray {
public \$counter;

function __construct() {
\$this->counter = 0;
}
//Print array elements

public 	function print_data(\$arr, \$size) {
for (\$i = 0; \$i < \$size; \$i++) {
echo(" ". \$arr[\$i]);
}
echo("\n");
}
public 	function arrange(\$arr, \$size, \$index) {
if (\$index < 0) {
return;
}
//Get element
\$data = \$arr[\$index];
\$this->arrange(\$arr, \$size, \$index - 1);
for (\$i = \$this->counter; \$i < \$size && \$this->counter < \$size; ++\$i) {
if (\$arr[\$i] == \$data) {
//swap element value
\$arr[\$i] = \$arr[\$this->counter];
\$arr[\$this->counter] = \$data;
\$this->counter = \$this->counter + 1;
}
}
}

function combine_element(\$arr, \$size) {
\$this->counter = 1;
\$this->arrange(\$arr, \$size, \$size - 1);
}
};

function main() {
\$obj = new MyArray();
\$arr = array(5, 4, 1, 3, 5, 5, 3, 1, 2, 2, 4, 3);
//Get the size of array
\$size = count(\$arr);
echo(" Before Combine \n");
\$obj->print_data(\$arr, \$size);
echo(" After Combine \n");
\$obj->combine_element(\$arr, \$size);
\$obj->print_data(\$arr, \$size);
}
main();```
```

#### Output

`````` Before Combine
5 4 1 3 5 5 3 1 2 2 4 3
After Combine
5 4 1 3 5 5 3 1 2 2 4 3``````
``````/*
Node Js Program
Arrange array elements by occurrence sequence
*/
class MyArray {
;
constructor() {
this.counter = 0;
}
//Print array elements
print_data(arr, size) {
for (var i = 0; i < size; i++) {
process.stdout.write(" " + arr[i]);
}
process.stdout.write("\n");
}
arrange(arr, size, index) {
if (index < 0) {
return;
}
//Get element
var data = arr[index];
this.arrange(arr, size, index - 1);
for (var i = this.counter; i < size && this.counter < size; ++i) {
if (arr[i] == data) {
//swap element value
arr[i] = arr[this.counter];
arr[this.counter] = data;
this.counter = this.counter + 1;
}
}
}
combine_element(arr, size) {
this.counter = 1;
this.arrange(arr, size, size - 1);
}
}

function main(args) {
var obj = new MyArray();
var arr = [5, 4, 1, 3, 5, 5, 3, 1, 2, 2, 4, 3];
//Get the size of array
var size = arr.length;
process.stdout.write(" Before Combine \n");
obj.print_data(arr, size);
process.stdout.write(" After Combine \n");
obj.combine_element(arr, size);
obj.print_data(arr, size);
}
main();```
```

#### Output

`````` Before Combine
5 4 1 3 5 5 3 1 2 2 4 3
After Combine
5 5 5 4 4 1 1 3 3 3 2 2``````
``````# Python 3 Program

# Arrange array elements by occurrence sequence
class MyArray :

def __init__(self) :
self.counter = 0

# Print array elements
def print_data(self, arr, size) :
i = 0
while (i < size) :
print(" ", arr[i],end="")
i += 1

print(end="\n")

def arrange(self, arr, size, index) :
if (index < 0) :
return

data = arr[index]
self.arrange(arr, size, index - 1)
i = self.counter
while (i < size and self.counter < size) :
if (arr[i] == data) :
# swap element value
arr[i] = arr[self.counter]
arr[self.counter] = data
self.counter = self.counter + 1

i += 1

def combine_element(self, arr, size) :
self.counter = 1
self.arrange(arr, size, size - 1)

def main() :
obj = MyArray()
arr = [5, 4, 1, 3, 5, 5, 3, 1, 2, 2, 4, 3]
size = len(arr)
print(" Before Combine ")
obj.print_data(arr, size)
print(" After Combine ")
obj.combine_element(arr, size)
obj.print_data(arr, size)

if __name__ == "__main__":
main()```
```

#### Output

`````` Before Combine
5 4 1 3 5 5 3 1 2 2 4 3
After Combine
5 5 5 4 4 1 1 3 3 3 2 2``````
``````# Ruby Program
# Arrange array elements by occurrence sequence
class MyArray
# Define the accessor and reader of class MyArray
attr_accessor :counter
def initialize()
@counter = 0
end
# Print array elements
def print_data(arr, size)
i = 0
while (i < size)
print(" ", arr[i])
i += 1
end
print("\n")
end
def arrange(arr, size, index)
if (index < 0)
return
end
data = arr[index]
self.arrange(arr, size, index - 1)
i = @counter
while (i < size and @counter < size)
if (arr[i] == data)
# swap element value
arr[i] = arr[@counter]
arr[@counter] = data
@counter = @counter + 1
end
i += 1
end
end
def combine_element(arr, size)
@counter = 1
self.arrange(arr, size, size - 1)
end
end
def main()
obj = MyArray.new()
arr = [5, 4, 1, 3, 5, 5, 3, 1, 2, 2, 4, 3]
size = arr.length
print(" Before Combine \n")
obj.print_data(arr, size)
print(" After Combine \n")
obj.combine_element(arr, size)
obj.print_data(arr, size)
end

main()```
```

#### Output

`````` Before Combine
5 4 1 3 5 5 3 1 2 2 4 3
After Combine
5 5 5 4 4 1 1 3 3 3 2 2
``````
``````/*
Scala Program
Arrange array elements by occurrence sequence
*/
class MyArray(var counter: Int) {

def this() {
this(0);
}
//Print array elements
def print_data(arr: Array[Int], size: Int): Unit = {
var i: Int = 0;
while (i < size) {
print(" " + arr(i));
i += 1;
}
print("\n");
}
def arrange(arr: Array[Int], size: Int, index: Int): Unit = {
if (index < 0) {
return;
}
var data: Int = arr(index);
this.arrange(arr, size, index - 1);
var i: Int = this.counter;
while (i < size && this.counter < size) {
if (arr(i) == data) {
//swap element value
arr(i) = arr(this.counter);
arr(this.counter) = data;
this.counter = this.counter + 1;
}
i += 1;
}
}
def combine_element(arr: Array[Int], size: Int): Unit = {
this.counter = 1;this.arrange(arr, size, size - 1);
}
}
object Main {
def main(args: Array[String]): Unit = {
var obj: MyArray = new MyArray();
var arr: Array[Int] = Array(5, 4, 1, 3, 5, 5, 3, 1, 2, 2, 4, 3);
var size: Int = arr.length;
print(" Before Combine \n");
obj.print_data(arr, size);
print(" After Combine \n");
obj.combine_element(arr, size);
obj.print_data(arr, size);
}
}```
```

#### Output

`````` Before Combine
5 4 1 3 5 5 3 1 2 2 4 3
After Combine
5 5 5 4 4 1 1 3 3 3 2 2``````
``````/*
Swift 4 Program
Arrange array elements by occurrence sequence
*/
class MyArray {
var counter : Int;
init() {
self.counter = 0;
}
//Print array elements
func print_data(_ arr: [Int], _ size: Int) {
var i: Int = 0;
while (i < size) {
print(" ", arr[i],terminator:"");
i += 1;
}
print(terminator:"\n");
}
func arrange(_ arr: inout [Int], _ size: Int, _ index: Int) {
if (index < 0) {
return;
}
let data: Int = arr[index];
self.arrange(&arr, size, index - 1);
var i: Int = self.counter;
while (i < size && self.counter < size) {
if (arr[i] == data) {
//swap element value
arr[i] = arr[self.counter];
arr[self.counter] = data;
self.counter = self.counter + 1;
}
i += 1;
}
}
func combine_element(_ arr: inout [Int], _ size: Int) {
self.counter = 1;
self.arrange(&arr, size, size - 1);
}
}
func main() {
let obj: MyArray = MyArray();
var arr: [Int] = [5, 4, 1, 3, 5, 5, 3, 1, 2, 2, 4, 3];
let size: Int = arr.count;
print(" Before Combine");
obj.print_data(arr, size);
print(" After Combine ");
obj.combine_element(&arr, size);
obj.print_data(arr, size);
}
main();```
```

#### Output

`````` Before Combine
5  4  1  3  5  5  3  1  2  2  4  3
After Combine
5  5  5  4  4  1  1  3  3  3  2  2``````

## 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.