Структуры данных и алгоритмы - массивы
Массив - это контейнер, который может содержать фиксированное количество элементов, и эти элементы должны быть одного типа. Большинство структур данных используют массивы для реализации своих алгоритмов. Ниже приведены важные термины для понимания концепции массива.
Element - Каждый элемент, хранящийся в массиве, называется элементом.
Index - Каждое местоположение элемента в массиве имеет числовой индекс, который используется для идентификации элемента.
Представление массива
Массивы можно объявлять по-разному на разных языках. Для иллюстрации возьмем объявление массива C.
Массивы можно объявлять по-разному на разных языках. Для иллюстрации возьмем объявление массива C.
В соответствии с приведенной выше иллюстрацией следует учитывать следующие важные моменты.
Индекс начинается с 0.
Длина массива 10, что означает, что он может хранить 10 элементов.
Доступ к каждому элементу можно получить через его индекс. Например, мы можем получить элемент с индексом 6 как 9.
Основные операции
Ниже приведены основные операции, поддерживаемые массивом.
Traverse - распечатать все элементы массива один за другим.
Insertion - Добавляет элемент по указанному индексу.
Deletion - Удаляет элемент по данному индексу.
Search - Ищет элемент по заданному индексу или по значению.
Update - Обновляет элемент по заданному индексу.
В C, когда массив инициализируется размером, он присваивает значения по умолчанию своим элементам в следующем порядке.
Тип данных | Значение по умолчанию |
---|---|
bool | ложный |
char | 0 |
int | 0 |
плавать | 0,0 |
двойной | 0,0f |
пустота | |
wchar_t | 0 |
Операция траверса
Эта операция предназначена для обхода элементов массива.
пример
Следующая программа просматривает и печатает элементы массива:
#include <stdio.h>
main() {
int LA[] = {1,3,5,7,8};
int item = 10, k = 3, n = 5;
int i = 0, j = n;
printf("The original array elements are :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
}
Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:
Вывод
The original array elements are :
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8
Операция вставки
Операция вставки заключается в вставке одного или нескольких элементов данных в массив. В зависимости от требований новый элемент может быть добавлен в начало, конец или любой заданный индекс массива.
Здесь мы видим практическую реализацию операции вставки, когда мы добавляем данные в конец массива -
пример
Ниже приводится реализация вышеуказанного алгоритма -
#include <stdio.h>
main() {
int LA[] = {1,3,5,7,8};
int item = 10, k = 3, n = 5;
int i = 0, j = n;
printf("The original array elements are :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
n = n + 1;
while( j >= k) {
LA[j+1] = LA[j];
j = j - 1;
}
LA[k] = item;
printf("The array elements after insertion :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
}
Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:
Вывод
The original array elements are :
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8
The array elements after insertion :
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 10
LA[4] = 7
LA[5] = 8
Для других вариантов операции вставки массива щелкните здесь
Операция удаления
Удаление означает удаление существующего элемента из массива и реорганизацию всех элементов массива.
Алгоритм
Рассматривать LA это линейный массив с N элементы и K натуральное число такое, что K<=N. Ниже приводится алгоритм удаления элемента доступный в K - й позиции ЛА.
1. Start
2. Set J = K
3. Repeat steps 4 and 5 while J < N
4. Set LA[J] = LA[J + 1]
5. Set J = J+1
6. Set N = N-1
7. Stop
пример
Ниже приводится реализация вышеуказанного алгоритма -
#include <stdio.h>
void main() {
int LA[] = {1,3,5,7,8};
int k = 3, n = 5;
int i, j;
printf("The original array elements are :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
j = k;
while( j < n) {
LA[j-1] = LA[j];
j = j + 1;
}
n = n -1;
printf("The array elements after deletion :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
}
Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:
Вывод
The original array elements are :
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8
The array elements after deletion :
LA[0] = 1
LA[1] = 3
LA[2] = 7
LA[3] = 8
Поисковая операция
Вы можете выполнить поиск элемента массива на основе его значения или индекса.
Алгоритм
Рассматривать LA это линейный массив с N элементы и K натуральное число такое, что K<=N. Ниже приведен алгоритм поиска элемента со значением ITEM с использованием последовательного поиска.
1. Start
2. Set J = 0
3. Repeat steps 4 and 5 while J < N
4. IF LA[J] is equal ITEM THEN GOTO STEP 6
5. Set J = J +1
6. PRINT J, ITEM
7. Stop
пример
Ниже приводится реализация вышеуказанного алгоритма -
#include <stdio.h>
void main() {
int LA[] = {1,3,5,7,8};
int item = 5, n = 5;
int i = 0, j = 0;
printf("The original array elements are :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
while( j < n){
if( LA[j] == item ) {
break;
}
j = j + 1;
}
printf("Found element %d at position %d\n", item, j+1);
}
Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:
Вывод
The original array elements are :
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8
Found element 5 at position 3
Операция обновления
Операция обновления относится к обновлению существующего элемента из массива по заданному индексу.
Алгоритм
Рассматривать LA это линейный массив с N элементы и K натуральное число такое, что K<=N. Ниже приводится алгоритм обновления элемента , имеющейся на K - й позиции ЛА.
1. Start
2. Set LA[K-1] = ITEM
3. Stop
пример
Ниже приводится реализация вышеуказанного алгоритма -
#include <stdio.h>
void main() {
int LA[] = {1,3,5,7,8};
int k = 3, n = 5, item = 10;
int i, j;
printf("The original array elements are :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
LA[k-1] = item;
printf("The array elements after updation :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
}
Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:
Вывод
The original array elements are :
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8
The array elements after updation :
LA[0] = 1
LA[1] = 3
LA[2] = 10
LA[3] = 7
LA[4] = 8