C Online Compiler
Example: Even-Odd Sort using Two Pointers in C
C
C++
C#
Java
Python
PHP
main.c
STDIN
Run
// Even-Odd Sort using Two Pointers #include <stdio.h> void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } void evenOddSortTwoPointers(int arr[], int n) { // Step 1: Initialize two pointers int left = 0; int right = n - 1; // Step 2: Iterate while left pointer is less than right pointer while (left < right) { // Step 3: Move left pointer while it points to an even number while (arr[left] % 2 == 0 && left < right) { left++; } // Step 4: Move right pointer while it points to an odd number while (arr[right] % 2 != 0 && left < right) { right--; } // Step 5: If left is still less than right, swap elements if (left < right) { swap(&arr[left], &arr[right]); left++; right--; } } } void printArray(int arr[], int n) { for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[] = {12, 34, 45, 9, 8, 90, 3}; int n = sizeof(arr) / sizeof(arr[0]); printf("Original array: "); printArray(arr, n); evenOddSortTwoPointers(arr, n); printf("Sorted array (Two Pointers): "); printArray(arr, n); int arr2[] = {7, 2, 10, 5, 1, 8, 4}; n = sizeof(arr2) / sizeof(arr2[0]); printf("Original array: "); printArray(arr2, n); evenOddSortTwoPointers(arr2, n); printf("Sorted array (Two Pointers): "); printArray(arr2, n); return 0; }
Output
Clear
ADVERTISEMENTS