Introducción a las funciones de matriz en C

Las funciones de matriz en C son un tipo de estructura de datos que contiene múltiples elementos del mismo tipo de datos. El tamaño de una matriz es fijo y los elementos se recopilan de forma secuencial. Puede haber diferentes dimensiones de matrices y la programación en C no limita el número de dimensiones en una matriz.

Diferentes funciones de matriz en C

Hay diferentes funciones que se pueden realizar en matrices.

1) atravesar

Atravesar una matriz significa pasar por cada elemento de una matriz exactamente una vez. Comenzamos desde el primer elemento y vamos al último elemento. Un ejemplo de dicho programa que realiza una operación de desplazamiento en una matriz lineal se muestra a continuación en lenguaje C.

Código

#include
void main()
(
int array() = (1, 2, 3, 4, 5);
int i, n = 5;
printf(" The array elements are: \n " );
for( i=0;i < n; i++)
(
printf(" array(%d) = %d \n ", i, array(i) );
)
)

Salida:

2) Buscando

La operación de búsqueda se utiliza para encontrar un elemento o elemento de datos en particular en una matriz. Podemos realizar búsquedas en una matriz sin clasificar con la ayuda del recorrido de la matriz. El recorrido lineal desde el primer elemento hasta el último elemento puede usarse para buscar si un número dado está presente en una matriz y también puede usarse para encontrar su posición si está presente.

Esto se hace comparando cada elemento con el elemento dado (que se debe buscar). Una vez que se encuentra el elemento, se detiene la operación de búsqueda. Aquí hay un ejemplo para mostrar la operación de búsqueda realizada en una matriz en C

Código

#include
int findElement(int arr(), int n, int key)
(
int i;
for (i = 0; i < n; i++)
if (arr(i) == key
return i;
return -1;
)
int main()
(
int arr() = (1, 4, 0, 6, 3);
int n = sizeof(arr) / sizeof(arr(0));
int key = 4;
int position = findElement(arr, n, key);
if (position == - 1)
printf("Element not found");
else
printf("Element Found at Position: %d", position + 1 );
return 0;
)

Salida:

3) Inserción

La operación de inserción se utiliza para agregar un nuevo elemento en la matriz. Cuando especificamos el elemento particular y la posición donde se va a agregar en la matriz, realizamos una operación de inserción. Sin embargo, el tamaño de la matriz no se ve afectado al realizar esta operación. Un elemento se insertará en una matriz solo si tiene suficiente espacio para agregarlo. Si el tamaño de una matriz ya está lleno, no se puede agregar un nuevo elemento. Un ejemplo para mostrar la operación de inserción en una matriz sin clasificar en C.

Código

#include
int insertSorted(int arr(), int n, int key, int capacity)
(
if (n >= capacity)
return n;
arr(n) = key;
return (n + 1);
)
int main()
(
int arr(20) = (8, 5, 6, 9, 0, 7) ;
int capacity = sizeof(arr) / sizeof(arr(0));
int n = 6;
int i, key = 2;
printf("\n Before Insertion: ");
for (i = 0; i < n; i++)
printf("%d ", arr(i));
n = insertSorted(arr, n, key, capacity);
printf("\n After Insertion: ");
for (i = 0; i < n; i++)
printf("%d ", arr(i));
return 0;
)

Salida:

4) eliminación

En la operación de eliminación, se busca el elemento que ya existe en la matriz (mediante búsqueda lineal) y se elimina, seguido del desplazamiento de los elementos. El usuario ingresa la posición del elemento que se va a eliminar de la matriz. La operación de eliminación, al igual que la operación de inserción, no afecta el tamaño de la matriz. Además, la posición del elemento a eliminar debe estar dentro del tamaño de la matriz, ya que la eliminación de un elemento más allá del tamaño de la matriz no es posible. Programa C para mostrar la operación de eliminación en una matriz sin clasificar

Código

#include
int findElement(int arr(), int n, int key);
int deleteElement(int arr(), int n, int key)
(
int pos = findElement(arr, n, key);
if (pos == - 1)
(
printf("Element not found");
return n;)
int i;
for (i = pos; i < n - 1; i++)
arr(i) = arr(i + 1);
return n - 1;
)
int findElement(int arr(), int n, int key)
(
int i;
for (i = 0; i < n; i++)
if (arr(i) == key)
return i;return - 1;
)
int main()
(
int i;
int arr() = (1, 5, 3, 4, 2);
int n = sizeof(arr) / sizeof(arr(0));
int key = 3;
printf("Array before deletion\n");
for (i = 0; i < n; i++)
printf("%d ", arr(i));
n = deleteElement(arr, n, key);
printf("\nArray after deletion\n");
for (i = 0; i < n; i++)
printf("%d ", arr(i));
return 0;
)

Salida:

5) Clasificación

Esta operación se realiza para ordenar una matriz en un orden fijo, es decir, ascendente o descendente. Aquí hay un ejemplo de operación de ordenación en una matriz en C

Código

#include
void main()
(
int i, j, a, n, number(30);
printf("Enter the value of N \n");
scanf("%d", &n);
printf("Enter the numbers \n");
for (i = 0; i < n; ++i)
scanf("%d", &number(i));
for (i = 0; i < n; ++i)
(
for (j = i + 1; j < n; ++j)
(
if (number(i) > number(j))
(
a = number(i);
number(i) = number(j);
number(j) = a;
)
)
)
printf("The numbers arranged in ascending order are given below \n");
for (i = 0; i < n; ++i)
printf("%d\n", number(i));
)

Salida:

Diferentes formas de ordenar una matriz

A continuación se muestran los diferentes métodos de clasificación para Array:

1) Ordenar burbujas

La clasificación de burbujas compara todos los elementos uno por uno y los ordena en función de sus valores. Comienza comparando el primer elemento con el segundo, si el primer elemento es mayor que el segundo elemento, intercambiará ambos elementos y continuará comparando el segundo y el tercer elemento, y así sucesivamente.

2) Ordenar selección

La idea básica detrás del ordenamiento por selección es encontrar el elemento mínimo en la matriz sin clasificar, reemplazándolo con el primer elemento. Luego continúe el mismo proceso con el resto de la matriz sin clasificar, es decir, desde la segunda posición, luego desde la tercera y así sucesivamente.

3) Ordenar fusión

Este método de clasificación se basa en la técnica de dividir y conquistar. Divide el conjunto en dos subconjuntos iguales y continúa hasta que cada subconjunto contiene un solo elemento, y luego los fusiona de manera ordenada, lo que da como resultado un conjunto ordenado.

4) Clasificación de inserción

En el orden de inserción, comenzamos con el segundo elemento. Los elementos de la matriz se comparan entre sí de manera secuencial. El elemento actual (el valor que se debe ordenar) se compara con todos los elementos en la subcadena ordenada. Todos los elementos en el subconjunto ordenado que son mayores que el elemento actual se desplazan y se inserta el valor actual. Este proceso se repite hasta que se ordena toda la matriz.

5) Clasificación rápida

Quicksort, al igual que el tipo de fusión, también se basa en el algoritmo de dividir y conquistar. En este método, un elemento se elige como pivote (generalmente el primer elemento). Luego, las particiones de una matriz se hacen alrededor del pivote elegido, es decir, todos los elementos inferiores al pivote formarán una sub-matriz y todos los elementos mayores que el pivote formarán otro. El procedimiento también se repite con las sub-matrices hasta que se ordena toda la matriz.

6) Ordenar montón

El algoritmo de ordenación del montón se basa en la comparación. El elemento máximo se selecciona y se coloca en la posición final. Luego se encuentra el segundo elemento más grande y se coloca en la segunda última posición. Este proceso se repite para todos los elementos.

Artículos recomendados

Esta es una guía de las funciones de matriz en C. Aquí discutimos las diferentes funciones y formas de ordenar una matriz. También puede consultar nuestros otros artículos relacionados para obtener más información:

  1. Matrices en C ++
  2. Arreglos en R
  3. Funciones en R
  4. Ventajas de la matriz
  5. Tipos de funciones de matriz en PHP y ejemplos