-
Notifications
You must be signed in to change notification settings - Fork 353
/
Copy pathnegative_number_shuffle.cpp
40 lines (32 loc) · 1012 Bytes
/
negative_number_shuffle.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//This program will move all negative elements of an array of integers to the end of the array without changing the order of positive element and negative element
#include <iostream>
using namespace std;
void segregateElements(int nums[], int n)
{
// Array to store result
int result[n];
int j = 0; // index of result
for (int i = 0; i < n ; i++)
if (nums[i] >= 0 )
result[j++] = nums[i];
if (j == n || j == 0)
return;
for (int i = 0 ; i < n ; i++)
if (nums[i] < 0)
result[j++] = nums[i];
// Copy contents to nums[]
memcpy(nums, result, sizeof(result));
}
int main()
{
int nums[] = {1, 3, -7, 2, -13, 19, -20};
int n = sizeof(nums)/sizeof(nums[0]);
cout << "Original array: ";
for (int i=0; i < n; i++)
cout << nums[i] <<" ";
segregateElements(nums, n);
printf("\nArray elements after rearrange: ");
for (int i=0; i < n; i++)
cout << nums[i] <<" ";
return 0;
}