Въведение във функциите на масив в C

Функциите на масива в C е тип структура от данни, която съдържа множество елементи от един и същи тип данни. Размерът на масива е фиксиран и елементите се събират последователно. Може да има различни измерения на масиви, а програмирането на C не ограничава броя на размерите в масива.

Различни функции на масив в C

Има различни функции, които могат да се изпълняват на масиви.

1) Преминаване

Преминаването на масив означава преминаване през всеки елемент от масив точно веднъж. Започваме от първия елемент и преминаваме към последния елемент. Пример за такава програма, която извършва операция за преминаване на линеен масив, е дадена по-долу на език С.

код

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

изход:

2) Търсене

Операцията за търсене се използва за намиране на определен елемент от данни или елемент в масив. Можем да извършим търсене в несортиран масив с помощта на преминаване на масива. Линейното преминаване от първия елемент към последния елемент може да се използва за търсене, ако дадено число присъства в масива и може също да се използва за намиране на неговото положение, ако е налице.

Това става чрез сравняване на всеки елемент с дадения елемент (който трябва да се търси). След като елементът бъде намерен, операцията за търсене се спира. Ето пример за показване на операция за търсене, извършена на масив в C

код

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

изход:

3) Вмъкване

Операцията за вмъкване се използва за добавяне на нов елемент в масива. Когато посочим конкретния елемент и позицията, където той трябва да бъде добавен в масива, извършваме операция за вмъкване. Размерът на масива обаче не се нарушава по време на тази операция. Елементът ще бъде вмъкнат в масив само ако има достатъчно място за добавянето му. Ако размерът на масива вече е пълен, нов елемент не може да бъде добавен. Пример за показване на операция за вмъкване в несортиран масив в C.

код

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

изход:

4) Изтриване

При операция за изтриване се търси елементът, който вече съществува в масива (използва се линеен търсене) и се изтрива, последвано от изместване на елементите. Потребителят въвежда позицията на елемента, който трябва да бъде изтрит от масива. Операцията за изтриване, подобно на операцията за вмъкване, не влияе на размера на масива. Също така позицията на елемента, който трябва да бъде изтрит, трябва да бъде в рамките на размера на масива, тъй като изтриването на елемент извън размера на Array не е възможно. C програма за показване на операция за изтриване в несортиран масив.

код

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

изход:

5) Сортиране

Тази операция се извършва за сортиране на масив във фиксиран ред, т.е. във възходящ или низходящ ред. Ето пример за операция по сортиране на масив в C

код

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

изход:

Различни начини за сортиране на масив

По-долу са различните методи за сортиране за Array:

1) Сортиране на балончета

Сортирането на балоните сравнява всички елементи един по един и ги сортира въз основа на техните стойности. Той започва с сравняване на първия елемент с втория, ако първият елемент е по-голям от втория, той ще смени двата елемента и ще продължи сравняването на втория и третия елемент и т.н.

2) Сортиране на селекцията

Основната идея зад сортирането на селекцията е намирането на най-малко елемент в несортирания масив, замяната му с първия елемент. След това продължете същия процес с останалата част от несортирания масив, т.е. от втората позиция, след това от третата и така нататък.

3) Сливане Сортиране

Този метод на сортиране се основава на техниката на разделяне и завладяване. Той разделя масива на две равни подразделения и продължава, докато всяка подмасива съдържа един елемент и след това ги обединява по подреден начин, което води до сортиран масив.

4) Сортиране на вмъкване

В сортирането на вмъкването започваме с втория елемент. Елементите на масива се сравняват един с друг последователно. Текущият елемент (стойността, която трябва да се сортира) се сравнява с всички елементи в подредената подмасива. Всички елементи в подредената подмасива, които са по-големи от текущия елемент, се изместват и се добавя текущата стойност. Този процес се повтаря, докато не се сортира целият масив.

5) Бързо сортиране

Quicksort, подобно на сортирането на сливане, също се основава на алгоритъма на разделяне и завладяване. При този метод елемент се избира като въртящ се (обикновено първият елемент). След това дяловете на масив се правят около избрания въртящ елемент, т.е. всички елементи, по-малки от въртенето, ще образуват един под-масив и всички елементи, по-големи от въртенето, ще образуват друг. Процедурата се повтаря и с подмасивите, докато се сортира целият масив.

6) Сортиране на купчината

Алгоритъмът за сортиране на купчината се основава на сравнението. Максималният елемент се избира и се поставя в крайното положение. Тогава се намира вторият по големина елемент и се поставя във втората последна позиция. Този процес се повтаря за всички елементи.

Препоръчителни статии

Това е ръководство за функциите на масива в C. Тук обсъждаме различните функции и начини за сортиране на масив. Можете също да прегледате и другите ни свързани статии, за да научите повече -

  1. Масиви в C ++
  2. Масиви в R
  3. Функции в R
  4. Предимства на масива
  5. Видове функции на масив в PHP и примери