Inleiding tot arrayfuncties in C

Matrixfuncties in C is een type gegevensstructuur dat meerdere elementen van hetzelfde gegevenstype bevat. De grootte van een array is vast en de elementen worden op een opeenvolgende manier verzameld. Er kunnen verschillende dimensies van arrays zijn en C-programmering beperkt het aantal dimensies in een array niet.

Verschillende functies van array in C

Er zijn verschillende functies die op arrays kunnen worden uitgevoerd.

1) Doorkruisen

Doorkruisen van een array betekent precies één keer door elk element van een array gaan. We beginnen bij het eerste element en gaan naar het laatste element. Een voorbeeld van een dergelijk programma dat traversing op een lineaire array uitvoert, wordt hieronder in C-taal gegeven.

Code

#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) );
)
)

Output:

2) Zoeken

De zoekbewerking wordt gebruikt om een ​​bepaald gegevensitem of element in een array te vinden. We kunnen zoeken in een ongesorteerde array met behulp van de transversatie van de array. De lineaire verplaatsing van het eerste element naar het laatste element kan worden gebruikt om te zoeken of een bepaald nummer aanwezig is in een array en kan ook worden gebruikt om de positie te vinden indien aanwezig.

Dit wordt gedaan door elk element te vergelijken met het gegeven element (dat moet worden doorzocht). Zodra het element is gevonden, wordt de zoekbewerking gestopt. Hier is een voorbeeld om de zoekbewerking te tonen die is uitgevoerd op een array in C

Code

#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;
)

Output:

3) Invoeging

Invoegbewerking wordt gebruikt om een ​​nieuw element aan de array toe te voegen. Wanneer we het specifieke element en de positie opgeven waar het moet worden toegevoegd in de array, voeren we de invoegbewerking uit. De grootte van de array wordt echter niet gestoord tijdens deze bewerking. Een element wordt alleen in een array ingevoegd als het voldoende ruimte heeft om het toe te voegen. Als de grootte van een array al vol is, kan er geen nieuw element worden toegevoegd. Een voorbeeld om de invoegbewerking te tonen in een ongesorteerde array in C.

Code

#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;
)

Output:

4) Verwijderen

In de wisbewerking wordt het element dat al in de array bestaat, gezocht (met lineair zoeken) en verwijderd, gevolgd door het verschuiven van elementen. De gebruiker voert de positie in van het element dat moet worden verwijderd uit de array. De verwijderingsbewerking heeft, net als de invoegbewerking, geen invloed op de grootte van de array. Ook moet de positie van het element dat moet worden verwijderd binnen de arraybreedte liggen, omdat het verwijderen van een element dat groter is dan Array niet mogelijk is. C-programma om de wisbewerking in een ongesorteerde array weer te geven.

Code

#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;
)

Output:

5) Sorteren

Deze bewerking wordt uitgevoerd om een ​​array in een vaste volgorde te sorteren, dwz oplopend of aflopend. Hier is een voorbeeld van een sorteerbewerking op een array in C

Code

#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));
)

Output:

Verschillende manieren om een ​​array te sorteren

Hieronder staan ​​de verschillende sorteermethoden voor Array:

1) Bellen sorteren

Bubble sort vergelijkt alle elementen één voor één en sorteert ze op basis van hun waarden. Het begint met het vergelijken van het eerste element met het tweede, als het eerste element groter is dan het tweede element, zal het beide elementen verwisselen en doorgaan met het vergelijken van het tweede en het derde element, enzovoort.

2) Selectie sorteren

Het basisidee achter selectie sorteren is het vinden van het minste element in de ongesorteerde array, en dit vervangen door het eerste element. Ga dan verder met hetzelfde proces met de rest van de ongesorteerde array, dat wil zeggen vanaf de tweede positie, dan vanaf de derde enzovoort.

3) Sorteren samenvoegen

Deze sorteermethode is gebaseerd op de verdeel en heers techniek. Het splitst de array in twee gelijke subarrays en gaat door totdat elke subarray een enkel element bevat, en voegt ze vervolgens op een gesorteerde manier samen, resulterend in een gesorteerde array.

4) Invoegsortering

Bij het invoegen sorteren we met het tweede element. De array-elementen worden opeenvolgend met elkaar vergeleken. Het huidige element (de te sorteren waarde) wordt vergeleken met alle elementen in de gesorteerde subarray. Alle elementen in de gesorteerde subarray die groter zijn dan het huidige element worden verschoven en de huidige waarde wordt ingevoegd. Dit proces wordt herhaald totdat de hele array is gesorteerd.

5) Snel sorteren

Quicksort is, net als het samenvoegen, ook gebaseerd op het verdeel en heers algoritme. Bij deze methode wordt een element als het draaipunt gekozen (meestal het eerste element). Vervolgens worden partities van een array gemaakt rond het gekozen draaipunt, dat wil zeggen dat alle elementen kleiner dan het draaipunt één subarray vormen en alle elementen groter dan het draaipunt een andere vormen. De procedure wordt ook herhaald met de subarrays totdat de hele array is gesorteerd.

6) Hoop sorteren

Het algoritme van heap sort is gebaseerd op de vergelijking. Het maximale element wordt geselecteerd en in de eindpositie geplaatst. Vervolgens wordt het op een na grootste element gevonden en in de voorlaatste positie geplaatst. Dit proces wordt voor alle elementen herhaald.

Aanbevolen artikelen

Dit is een gids voor matrixfuncties in C. Hier bespreken we de verschillende functies en manieren om een ​​matrix te sorteren. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie -

  1. Arrays in C ++
  2. Arrays in R
  3. Functies in R
  4. Voordelen van Array
  5. Soorten array-functies in PHP en voorbeelden