Introduction
Sorting an array involves arranging its elements in a specific order, either ascending or descending. In C, you can sort an array using pointers to traverse and manipulate the elements directly. This guide will show you how to write a C program to sort an array using pointers.
Example:
- Input: Array [5, 2, 9, 1, 5, 6]
- Output: Sorted array [1, 2, 5, 5, 6, 9]
Problem Statement
Create a C program that:
- Takes an array of integers as input from the user.
- Uses pointers to sort the array in ascending order.
- Displays the sorted array.
Solution Steps
- Include the Standard Input-Output Library: Use #include <stdio.h>for standard input-output functions.
- Declare the Array and Pointer Variables: Declare an integer array to store the elements and pointer variables for sorting.
- Input the Array Elements: Use a loop to take input for the array elements from the user.
- Sort the Array Using Pointers: Use a sorting algorithm (like Bubble Sort) to sort the array by manipulating the elements through pointers.
- Display the Sorted Array: Use a loop to display the sorted array.
C Program to Sort an Array Using Pointers
#include <stdio.h>
int main() {
    // Step 2: Declare the array and pointer variables
    int arr[100], n;
    int *ptr1, *ptr2, temp;
    // Step 3: Input the number of elements and the array elements
    printf("Enter the number of elements: ");
    scanf("%d", &n);
    printf("Enter the elements of the array: ");
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    // Step 4: Sort the array using pointers (Bubble Sort)
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            ptr1 = &arr[j];
            ptr2 = &arr[j + 1];
            if (*ptr1 > *ptr2) {  // Compare the elements pointed by ptr1 and ptr2
                // Swap the elements
                temp = *ptr1;
                *ptr1 = *ptr2;
                *ptr2 = temp;
            }
        }
    }
    // Step 5: Display the sorted array
    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;  // Return 0 to indicate successful execution
}
Explanation
Step 2: Declare the Array and Pointer Variables
- The integer array arris declared to store the elements of the array.
- The pointers ptr1andptr2are used to traverse and compare the elements of the array.
- The variable tempis used for swapping elements during sorting.
Step 3: Input the Array Elements
- The program prompts the user to enter the number of elements in the array and stores this value in n.
- A forloop is used to take input for each element of the array.
Step 4: Sort the Array Using Pointers
- The program uses a nested forloop to implement the Bubble Sort algorithm:- The outer loop runs n-1times, wherenis the number of elements in the array.
- The inner loop compares each element with the next element using pointers ptr1andptr2.
- If the element pointed to by ptr1is greater than the element pointed to byptr2, the elements are swapped using thetempvariable.
 
- The outer loop runs 
- This process continues until the entire array is sorted in ascending order.
Step 5: Display the Sorted Array
- The program uses a forloop to display the sorted array.
Return 0
- The return 0;statement indicates that the program executed successfully.
Output Example
Example Output:
Enter the number of elements: 6
Enter the elements of the array: 5 2 9 1 5 6
Sorted array: 1 2 5 5 6 9
Conclusion
This C program demonstrates how to sort an array using pointers. It covers basic concepts such as pointer manipulation, array traversal, and sorting algorithms, making it a useful example for beginners learning C programming.