Úvod do funkcií polí v C

Array Functions in C je typ dátovej štruktúry, ktorá obsahuje viac prvkov toho istého dátového typu. Veľkosť poľa je pevná a prvky sa zbierajú postupne. Môžu existovať rôzne dimenzie polí a programovanie C neobmedzuje počet rozmerov v poli.

Rôzne funkcie poľa v C

Na poliach sa dajú vykonávať rôzne funkcie.

1) Prechádzanie

Prechádzanie po poli znamená prechádzať každým prvkom poľa presne jedenkrát. Začneme od prvého prvku a prejdeme k poslednému prvku. Príklad takého programu, ktorý vykonáva pohybovú operáciu na lineárnom poli, je uvedený nižšie v jazyku C.

kód

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

Výkon:

2) Vyhľadávanie

Operácia vyhľadávania sa používa na nájdenie konkrétnej údajovej položky alebo prvku v poli. Môžeme vykonať vyhľadávanie v netriedenom poli pomocou prechodu cez pole. Lineárny prechod z prvého prvku do posledného prvku sa môže použiť na vyhľadávanie, či je dané číslo v poli a môže sa tiež použiť na nájdenie jeho polohy, ak je prítomné.

To sa vykonáva porovnaním každého prvku s daným prvkom (ktorý sa má prehľadávať). Akonáhle sa element nájde, vyhľadávanie sa zastaví. Tu je príklad na zobrazenie operácie vyhľadávania vykonanej na poli v C

kód

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

Výkon:

3) Vkladanie

Operácia vkladania sa používa na pridanie nového prvku do poľa. Keď určíme konkrétny prvok a pozíciu, kde sa má pridať do poľa, vykonáme operáciu vloženia. Pri vykonávaní tejto operácie však nie je narušená veľkosť poľa. Prvok sa vloží do poľa iba vtedy, ak má dostatok priestoru na jeho pridanie. Ak je už veľkosť poľa plná, nie je možné pridať nový prvok. Príklad na zobrazenie operácie vloženia v netriedenom poli v C.

kód

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

Výkon:

4) Vymazanie

V operácii vymazania sa element, ktorý už existuje v poli, vyhľadáva (pomocou lineárneho vyhľadávania) a vymaže, potom nasleduje posúvanie prvkov. Používateľ zadá polohu prvku, ktorý má byť vymazaný z poľa. Operácia vymazania, rovnako ako operácia vloženia, nemá vplyv na veľkosť poľa. Pozícia prvku, ktorý sa má vymazať, by tiež mala byť vo veľkosti poľa, pretože vymazanie prvku nad veľkosť poľa nie je možné. Program C na zobrazenie operácie mazania v netriedenom poli.

kód

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

Výkon:

5) Triedenie

Táto operácia sa vykonáva na zoradenie poľa do stáleho poradia, tj vzostupne alebo zostupne. Toto je príklad operácie triedenia na poli v C

kód

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

Výkon:

Rôzne spôsoby triedenia poľa

Nižšie sú uvedené rôzne spôsoby triedenia pre Array:

1) Zoradenie bubliniek

Bublinové triedenie porovnáva všetky prvky jeden po druhom a triedi ich podľa ich hodnôt. Začína porovnaním prvého prvku s druhým, ak je prvý prvok väčší ako druhý prvok, zamení obidva prvky a pokračuje porovnaním druhého a tretieho prvku atď.

2) Výber zoradenia

Základnou myšlienkou výberu druhu je nájdenie najmenšieho prvku v netriedenom poli a jeho nahradenie prvým prvkom. Potom pokračujte v rovnakom procese so zvyškom netriedeného poľa, tj z druhej pozície, potom z tretej a tak ďalej.

3) Zlúčiť zoradenie

Táto metóda triedenia je založená na technike rozdelenia a dobývania. Rozdeľuje pole do dvoch rovnakých čiastkových polí a pokračuje, kým každá čiastková oblasť neobsahuje jeden prvok, a potom ich zoraďuje triedeným spôsobom, čo vedie k triedenému súboru.

4) Zoradenie vloženia

Pri vkladaní začíname druhým prvkom. Prvky poľa sa navzájom porovnávajú sekvenčným spôsobom. Aktuálny prvok (hodnota, ktorá sa má triediť) sa porovnáva so všetkými prvkami v triedenom čiastkovom poli. Všetky prvky v triedenom čiastkovom poli, ktoré sú väčšie ako aktuálny prvok, sa posunú a vloží sa aktuálna hodnota. Tento proces sa opakuje, až kým nie je celé pole zoradené.

5) Rýchle zoradenie

Quicksort, rovnako ako zlučovanie, je tiež založený na algoritme rozdelenia a dobytia. Pri tomto spôsobe sa prvok vyberie ako otočný čap (všeobecne prvý prvok). Potom sa okolo vybratého čapu vytvoria oddiely poľa, tj všetky prvky menšie ako čap budú tvoriť jedno podskupinu a všetky prvky väčšie ako čap budú tvoriť ďalšie. Postup sa opakuje aj s čiastkovými poliami, kým nie je zoradené celé pole.

6) Usporiadanie haldy

Algoritmus triedenia haldy je založený na porovnaní. Maximálny prvok sa vyberie a umiestni do koncovej polohy. Potom sa nájde druhý najväčší prvok a umiestni sa do druhej poslednej polohy. Tento proces sa opakuje pre všetky prvky.

Odporúčané články

Toto je sprievodca funkciami poľa v C. Tu diskutujeme o rôznych funkciách a spôsoboch zoradenia poľa. Viac informácií nájdete aj v ďalších súvisiacich článkoch -

  1. Polia v C ++
  2. Polia v R.
  3. Funkcie v R
  4. Výhody poľa
  5. Typy funkcií polí v PHP a príklady

Kategórie: