Introduktion till Array-funktioner i C

Array-funktioner i C är en typ av datastruktur som innehåller flera element av samma datatyp. Storleken på en matris är fixerad och elementen samlas på ett sekventiellt sätt. Det kan finnas olika dimensioner på matriser och C-programmering begränsar inte antalet dimensioner i en array.

Olika funktioner i Array i C.

Det finns olika funktioner som kan utföras på matriser.

1) Korsning

Att korsa en array betyder att gå igenom varje element i en array exakt en gång. Vi börjar från det första elementet och går till det sista elementet. Ett exempel på ett sådant program som utför korsningsoperation på en linjär matris ges nedan på C-språk.

Koda

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

Produktion:

2) Sökning

Sökoperationen används för att hitta ett visst dataelement eller ett element i en array. Vi kan utföra sökning i en osorterad matris med hjälp av traversal of the Array. Den linjära genomgången från det första elementet till det sista elementet kan användas för att söka om ett givet nummer finns i en array och kan också användas för att hitta sin position om den finns.

Detta görs genom att jämföra varje element med det givna elementet (som ska sökas). När elementet hittats stoppas sökoperationen. Här är ett exempel för att visa sökoperationer som utförs på en matris i C

Koda

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

Produktion:

3) Insättning

Insertionsoperation används för att lägga till ett nytt element i Array. När vi anger det specifika elementet och positionen där det ska läggas till i Array, utför vi insättningsoperation. Storleken på arrayen störs dock inte när du utför denna operation. Ett element kommer att infogas i en matris bara om det har tillräckligt med utrymme för att lägga till det. Om storleken på en matris redan är full, kan inte ett nytt element läggas till. Ett exempel för att visa insatsoperation i en osorterad matris i C.

Koda

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

Produktion:

4) Radering

Vid raderingsoperation söks det element som redan finns i Array (med linjär sökning) och raderas, följt av förskjutning av element. Användaren kommer in i positionen för elementet som ska raderas från matrisen. Radering, precis som införingsfunktionen, påverkar inte storleken på matrisen. Positionen för elementet som ska raderas bör också ligga inom storleken på arrayen, eftersom radering av ett element bortom storleken på Array inte är möjlig. C-program för att visa radering i en osorterad matris.

Koda

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

Produktion:

5) Sortering

Denna operation utförs för att sortera en matris i en fast ordning, dvs antingen stigande eller fallande. Här är ett exempel på sorteringsoperation på en matris i C

Koda

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

Produktion:

Olika sätt att sortera en matris

Nedan är de olika sorteringsmetoderna för Array:

1) Bubble Sort

Bubble sort jämför alla elementen en efter en och sorterar dem baserat på deras värden. Det börjar med att jämföra det första elementet med det andra, om det första elementet är större än det andra elementet kommer det att byta både elementen och fortsätta att jämföra det andra och det tredje elementet, och så vidare.

2) Val av sortering

Den grundläggande idén bakom urvalssorten är att hitta det minsta elementet i den osorterade matrisen och ersätta det med det första elementet. Fortsätt sedan samma process med resten av den osorterade matrisen, dvs. från den andra positionen, sedan från den tredje och så vidare.

3) Slå samman

Denna metod för sortering är baserad på klyftan och erövringstekniken. Den delar uppsättningen i två lika subarrays och fortsätter tills varje subarray innehåller ett enda element och sammanfogar dem sedan på ett sorterat sätt vilket resulterar i en sorterad matris.

4) Insertion Sort

I insättningssorter börjar vi med det andra elementet. Arrayelementen jämförs med varandra på ett sekventiellt sätt. Det nuvarande elementet (värdet som ska sorteras) jämförs med alla elementen i den sorterade undergruppen. Alla element i den sorterade undergruppen som är större än det nuvarande elementet flyttas, och det aktuella värdet sätts in. Denna process upprepas tills hela matrisen är sorterad.

5) Snabbsortering

Quicksort, precis som sammanslagningssorten, baseras också på dividerings- och erövringsalgoritmen. I denna metod väljs ett element som pivot (vanligtvis det första elementet). Sedan görs partitioner av en matris runt den plockade pivoten, dvs alla element mindre än pivot kommer att bilda en delgrupp och alla element större än pivot kommer att bilda en annan. Proceduren upprepas också med undermatriserna tills hela matrisen är sorterad.

6) Heap Sort

Algoritmen för heap sort baseras på jämförelsen. Det maximala elementet väljs och placeras i slutpositionen. Sedan hittas det näst största elementet och placeras i den näst sista positionen. Denna process upprepas för alla element.

Rekommenderade artiklar

Detta är en guide till Array-funktioner i C. Här diskuterar vi de olika funktionerna och sätten att sortera en Array. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer -

  1. Matriser i C ++
  2. Matriser i R
  3. Funktioner i R
  4. Fördelar med array
  5. Typer av arrayfunktioner i PHP och exempel

Kategori: