# C program to sort an array using pointers

Learn how to sort an array using pointers in C with this comprehensive guide. Discover step-by-step instructions, example code, and detailed explanations to efficiently sort arrays and enhance your C programming skills.

### Understanding Pointers and Arrays in C

In C, an array is a collection of elements of the same type, and a pointer can be used to access and manipulate these elements directly. Using pointers for sorting allows for efficient data handling and can lead to more optimized code.

### Sorting Algorithms

There are various sorting algorithms, such as Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, and Merge Sort. For simplicity, we will use Bubble Sort in this example due to its straightforward implementation.

## Write a **C program to sort an array using pointers**

Here is a C program to sort an array using pointers with the Bubble Sort algorithm:

```
#include <stdio.h>
// Function to sort an array using pointers
void bubbleSort(int *arr, int n) {
int temp;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
// Compare adjacent elements using pointers
if (*(arr + j) > *(arr + j + 1)) {
// Swap the elements
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int arr[100];
int n;
// Input the size of the array
printf("Enter the number of elements: ");
scanf("%d", &n);
// Input the elements of the array
printf("Enter the elements of the array:\n");
for (int i = 0; i < n; i++) {
scanf("%d", arr + i);
}
// Sort the array
bubbleSort(arr, n);
// Output the sorted array
printf("\nSorted array: \n");
for (int i = 0; i < n; i++) {
printf("%d ", *(arr + i));
}
return 0;
}
```

**Output**

```
Enter the number of elements: 5
Enter the elements of the array:
5
4
3
2
1
Sorted array:
1 2 3 4 5
```

### Explanation

**Input Handling**:- The program begins by reading the size of the array and its elements from the user.

**Bubble Sort Function**:- The
`bubbleSort`

function takes an integer pointer (`arr`

) and the size of the array (`n`

) as arguments. - Two nested loops iterate through the array to perform the Bubble Sort.
- The inner loop compares adjacent elements using pointer arithmetic (
`(arr + j) > *(arr + j + 1)`

) and swaps them if they are in the wrong order.

- The
**Swapping Logic**:- A temporary variable
`temp`

is used to facilitate the swap of elements.

- A temporary variable
**Output**:- The sorted array is printed to the console using a loop and pointer arithmetic (
`(arr + i)`

).

- The sorted array is printed to the console using a loop and pointer arithmetic (

### Benefits of Using Pointers for Sorting

**Efficiency**: Pointers allow direct access to memory, potentially reducing the overhead associated with array indexing.**Flexibility**: Pointers can be easily manipulated to traverse the array, providing more control over the data.

By using the Bubble Sort algorithm, we've demonstrated a simple yet powerful way to sort an array using pointers. This knowledge can be applied to other sorting techniques and more complex data structures, enhancing your overall programming skills.

### 💡 Tips

**Practice with Different Sorting Algorithms**: Try implementing other sorting algorithms like Quick Sort or Merge Sort using pointers to deepen your understanding.**Optimize for Larger Arrays**: For larger datasets, consider more efficient algorithms and explore ways to optimize memory usage and performance.**Understand Pointer Arithmetic**: Mastering pointer arithmetic is crucial for manipulating arrays and other data structures in C effectively.