programa C para ordenar una array usando punteros

Dada una array de tamaño n, la tarea es ordenar esta array usando punteros en C. Ejemplos:

Input: n = 5, arr[] = {0, 23, 14, 12, 9}
Output: {0, 9, 12, 14, 23}

Input: n = 3, arr[] = {7, 0, 2}
Output: {0, 2, 7}

Enfoque: la array se puede obtener con la ayuda de punteros con la variable de puntero apuntando a la dirección base de la array . Por lo tanto, para ordenar la array usando punteros, necesitamos acceder a los elementos de la array usando el formato (puntero + índice) . 

A continuación se muestra la implementación del enfoque anterior:  

C

#include <stdio.h>
 
// Function to sort the numbers using pointers
void sort(int n, int* ptr)
{
    int i, j, t;
 
    // Sort the numbers using pointers
    for (i = 0; i < n; i++) {
 
        for (j = i + 1; j < n; j++) {
 
            if (*(ptr + j) < *(ptr + i)) {
 
                t = *(ptr + i);
                *(ptr + i) = *(ptr + j);
                *(ptr + j) = t;
            }
        }
    }
 
    // print the numbers
    for (i = 0; i < n; i++)
        printf("%d ", *(ptr + i));
}
 
// Driver code
int main()
{
    int n = 5;
    int arr[] = { 0, 23, 14, 12, 9 };
 
    sort(n, arr);
 
    return 0;
}
Producción:

0 9 12 14 23

Complejidad de tiempo: O(n 2 ), donde n representa el tamaño de la array dada.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *