Johdatus taulukon toimintoihin C: ssä

C-taulukon funktiot on tietotyyppi tietorakenteesta, joka sisältää useita samantyyppisiä elementtejä. Matriisin koko on kiinteä ja elementit kerätään peräkkäin. Matriiseja voi olla erilaisia ​​ja C-ohjelmointi ei rajoita taulukon mittojen lukumäärää.

C: n taulukon eri toiminnot

Matriiseissa voidaan suorittaa erilaisia ​​toimintoja.

1) Kulkeminen

Matriisin läpi kulkeminen tarkoittaa matriisin jokaisen elementin läpikäymistä tarkalleen kerran. Aloitamme ensimmäisestä elementistä ja siirrymme viimeiseen elementtiin. Alla on C-kielellä esimerkki sellaisesta ohjelmasta, joka suorittaa poikkitoiminnan lineaarisessa taulukossa.

Koodi

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

lähtö:

2) Etsiminen

Hakutoimintoa käytetään tietyn tietoryhmän tai elementin löytämiseen matriisista. Voimme suorittaa etsinnän lajittelemattomassa taulukossa taulukon läpi kulkemisen avulla. Lineaarista poikittaisuutta ensimmäisestä elementistä viimeiseen elementtiin voidaan käyttää etsimään, onko tietty lukumäärä taulukossa, ja sitä voidaan käyttää myös sen sijainnin löytämiseen, jos se on läsnä.

Tämä tehdään vertaamalla kutakin elementtiä annettuun elementtiin (jota etsitään). Kun elementti on löydetty, hakuoperaatio lopetetaan. Tässä on esimerkki hakuoperaatiosta, joka suoritetaan taulukossa C

Koodi

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

lähtö:

3) Lisäys

Lisäystoimintoa käytetään uuden elementin lisäämiseen taulukkoon. Kun määrittelemme tietyn elementin ja sijainnin, johon se lisätään taulukossa, suoritamme lisäysoperaation. Ryhmän koko ei kuitenkaan ole häiriintynyt tätä toimintoa suoritettaessa. Elementti lisätään taulukkoon vain, jos sillä on tarpeeksi tilaa sen lisäämiseksi. Jos taulukon koko on jo täynnä, uutta elementtiä ei voida lisätä. Esimerkki lisäystoiminnan esittämisestä lajittelemattomassa taulukossa C: ssä.

Koodi

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

lähtö:

4) Poisto

Poistotoiminnossa ryhmässä jo olemassa oleva elementti etsitään (käyttäen lineaarista hakua) ja poistetaan, mitä seuraa elementtien siirtäminen. Käyttäjä syöttää taulukosta poistettavan elementin sijainnin. Poistamisoperaatio, kuten lisäysoperaatio, ei vaikuta taulukon kokoon. Lisäksi poistettavan elementin sijainnin tulisi olla taulukon koko, koska taulukon kokoa suuremman elementin poistaminen ei ole mahdollista. C-ohjelma osoittamaan poistotoiminnot lajittelemattomassa taulukossa.

Koodi

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

lähtö:

5) Lajittelu

Tämä toimenpide suoritetaan taulukon järjestämiseksi kiinteään järjestykseen, ts. Joko nousevaan tai laskevaan. Tässä on esimerkki lajitteluoperaatiosta taulukossa C olevassa taulukossa

Koodi

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

lähtö:

Eri tavat taulukon lajitteluun

Alla on taulukon eri lajittelumenetelmät:

1) Kuplalajittelu

Bubble sort vertaa kaikkia elementtejä yksitellen ja lajittelee ne arvojensa perusteella. Se alkaa vertaamalla ensimmäistä elementtiä toiseen, jos ensimmäinen elementti on suurempi kuin toinen elementti, se vaihtaa molemmat elementit ja vertaa edelleen toista ja kolmatta elementtiä ja niin edelleen.

2) Valintalajittelu

Valinnanlajittelun perusajatuksena on löytää vähiten elementti lajittelemattomasta taulukosta korvaamalla se ensimmäisellä elementillä. Jatka sitten samaa prosessia muun lajittelemattoman ryhmän kanssa, ts. Toisesta sijainnista, sitten kolmannesta ja niin edelleen.

3) Yhdistä lajittelu

Tämä lajittelutapa perustuu jako- ja valloitusmenetelmään. Se jakaa taulukon kahteen yhtä suureen alaryhmään ja jatkuu, kunnes kukin alaryhmä sisältää yhden elementin, ja yhdistää ne sitten lajitellulla tavalla, jolloin saadaan lajiteltu taulukko.

4) Lisäyslajittelu

Lisäyslajikkeessa aloitamme toisesta elementistä. Ryhmäelementtejä verrataan toisiinsa peräkkäin. Nykyistä elementtiä (lajiteltavaa arvoa) verrataan kaikkiin lajitellun osajoukon elementteihin. Kaikki lajitellun osajoukon elementit, jotka ovat suuremmat kuin nykyinen elementti, siirretään ja nykyinen arvo lisätään. Tätä prosessia toistetaan, kunnes koko taulukko on lajiteltu.

5) Pikalajittelu

Quicksort, aivan kuten yhdistämislajittelu, perustuu myös jako- ja valloitus-algoritmiin. Tässä menetelmässä elementti valitaan nivelnä (yleensä ensimmäinen elementti). Sitten taulukon osiot tehdään poimitun nivelosan ympärille, ts. Kaikki nivelosaa pienemmät elementit muodostavat yhden alaryhmän ja kaikki nivelta suuremmat elementit muodostavat toisen. Menetelmä toistetaan myös alaryhmissä, kunnes koko taulukko on lajiteltu.

6) Heap Sort

Kasalajittelu algoritmi perustuu vertailuun. Maksimielementti valitaan ja asetetaan pääteasentoon. Sitten toiseksi suurin elementti löydetään ja asetetaan toiseen viimeiseen asemaan. Tämä prosessi toistetaan kaikille elementeille.

Suositellut artikkelit

Tämä on opas taulukon funktioihin C. Tässä keskustellaan taulukon lajitteluun liittyvistä toiminnoista ja tavoista. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja -

  1. Ryhmät C ++: ssa
  2. Ryhmät R
  3. Toiminnot R: ssä
  4. Matriisin edut
  5. PHP: n taulukkofunktiotyypit ja esimerkit