/C-Plus-Plus-Projects

Feel free to create new file, don't hesitate to pull your code, the most important thing is that the file name here must match your nickname so that file does not conflict with other people.

Primary LanguageC++

C-Plus-Plus-Projects

hacktoberfest

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

hacktoberfest 2021 hacktoberfest

Sort an array of 0s, 1s and 2s

// C++ program to sort an array // with 0, 1 and 2 in a single pass #include <bits/stdc++.h> using namespace std;

// Function to sort the input array, // the array is assumed // to have values in {0, 1, 2} void sort012(int a[], int arr_size) { int lo = 0; int hi = arr_size - 1; int mid = 0;

// Iterate till all the elements
// are sorted
while (mid <= hi) {
	switch (a[mid]) {

	// If the element is 0
	case 0:
		swap(a[lo++], a[mid++]);
		break;

	// If the element is 1 .
	case 1:
		mid++;
		break;

	// If the element is 2
	case 2:
		swap(a[mid], a[hi--]);
		break;
	}
}

}

// Function to print array arr[] void printArray(int arr[], int arr_size) { // Iterate and print every element for (int i = 0; i < arr_size; i++) cout << arr[i] << " "; }

// Driver Code int main() { int arr[] = { 0, 1, 1, 0, 1, 2, 1, 2, 0, 0, 0, 1 }; int n = sizeof(arr) / sizeof(arr[0]);

sort012(arr, n);

cout << "array after segregation ";

printArray(arr, n);

return 0;

}