Úvod do funkcí pole v C

Funkce pole v C je typ datové struktury, která obsahuje více prvků stejného datového typu. Velikost pole je pevná a prvky jsou shromažďovány postupně. Mohou existovat různé rozměry polí a programování C neomezuje počet rozměrů v poli.

Různé funkce pole v C

Existují různé funkce, které lze provádět na polích.

1) Traversing

Procházení pole znamená procházet každým prvkem pole přesně jednou. Začneme od prvního prvku a jdeme k poslednímu prvku. Příklad takového programu, který provádí pohybovou operaci na lineárním poli, je uveden níže v jazyce 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ýstup:

2) Hledání

Operace vyhledávání se používá k nalezení konkrétní datové položky nebo prvku v poli. Můžeme provádět vyhledávání v netříděném poli pomocí procházení pole. Lineární přechod z prvního prvku do posledního prvku lze použít k vyhledání, zda je dané číslo v poli přítomno, a může být také použito k nalezení jeho polohy, pokud je přítomno.

To se provádí porovnáním každého prvku s daným prvkem (který má být prohledáván). Jakmile je prvek nalezen, je operace vyhledávání zastavena. Zde je příklad ukázat vyhledávací operaci provedenou 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ýstup:

3) Vložení

Operace vložení se používá k přidání nového prvku do pole. Když určíme konkrétní prvek a polohu, kam má být přidán do pole, provedeme operaci vložení. Při provádění této operace však velikost pole není narušena. Prvek bude vložen do pole, pouze pokud má dostatek místa pro jeho přidání. Pokud je již velikost pole plná, nelze nový prvek přidat. Příklad znázorňující operaci vložení v netříděném 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ýstup:

4) Vymazání

V operaci smazání je prvek, který již existuje v poli, prohledáván (pomocí lineárního vyhledávání) a odstraněn, následuje přesun prvků. Uživatel zadá polohu prvku, který má být vymazán z pole. Operace odstranění stejně jako operace vložení neovlivní velikost pole. Také poloha prvku, který má být vymazán, by měla být v rámci velikosti pole, protože vymazání prvku nad velikost pole není možné. Program C pro zobrazení operace odstranění v netříděném 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ýstup:

5) Třídění

Tato operace se provádí k seřazení pole do pevného pořadí, tj. Buď vzestupně nebo sestupně. Zde je příklad operace řazení 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ýstup:

Různé způsoby třídění pole

Níže jsou uvedeny různé způsoby třídění pro pole:

1) Řazení bublin

Řazení bublin porovnává všechny prvky jeden po druhém a třídí je podle jejich hodnot. Začíná porovnáním prvního prvku s druhým, pokud je první prvek větší než druhý prvek, zamění oba prvky a provede porovnání druhého a třetího prvku atd.

2) Výběr řazení

Základní myšlenkou výběru řazení je nalezení nejmenšího prvku v netříděném poli a jeho nahrazení prvním prvkem. Poté pokračujte ve stejném procesu se zbytkem netříděného pole, tj. Z druhé pozice, poté ze třetí a tak dále.

3) Sloučit řazení

Tato metoda třídění je založena na technice rozdělení a dobytí. Rozděluje matici do dvou stejných dílčích polí a pokračuje, dokud každá dílčí pole neobsahuje jediný prvek, a poté je sloučí roztříděným způsobem, což vede k seřazenému poli.

4) Třídění vložení

Při zařazování začneme druhým prvkem. Prvky pole jsou vzájemně porovnávány sekvenčním způsobem. Aktuální prvek (hodnota, která má být tříděna) je porovnán se všemi prvky v tříděném dílčím poli. Všechny prvky v roztříděném dílčím poli, které jsou větší než aktuální prvek, se posunou a vloží se aktuální hodnota. Tento proces se opakuje, dokud není celé pole seřazeno.

5) Rychlé řazení

Quicksort, stejně jako sloučení, je také založen na algoritmu rozdělení a dobytí. V této metodě je prvek vybrán jako čep (obecně první prvek). Poté jsou oddíly matice vytvořeny kolem vybraného pivotu, tj. Všechny prvky menší než pivot budou tvořit jedno dílčí pole a všechny prvky větší než pivot budou tvořit další. Postup se opakuje také s dílčími poli, dokud není celé pole seřazeno.

6) Seřazení haldy

Algoritmus řazení haldy je založen na porovnání. Maximální prvek je vybrán a umístěn do koncové polohy. Poté se najde druhý největší prvek a umístí se do druhé poslední pozice. Tento proces se opakuje pro všechny prvky.

Doporučené články

Toto je průvodce funkcemi pole v C. Zde diskutujeme různé funkce a způsoby třídění pole. Další informace naleznete také v dalších souvisejících článcích -

  1. Pole v C ++
  2. Pole v R.
  3. Funkce v R
  4. Výhody pole
  5. Typy funkcí polí v PHP a příklady

Kategorie: