Учебники

Структуры данных и алгоритмы — массивы

Массив — это контейнер, который может содержать фиксированное количество элементов, и эти элементы должны быть одного типа. Большинство структур данных используют массивы для реализации своих алгоритмов. Ниже приведены важные термины для понимания концепции массива.

  • Элемент — каждый элемент, хранящийся в массиве, называется элементом.

  • Индекс — каждое местоположение элемента в массиве имеет числовой индекс, который используется для идентификации элемента.

Элемент — каждый элемент, хранящийся в массиве, называется элементом.

Индекс — каждое местоположение элемента в массиве имеет числовой индекс, который используется для идентификации элемента.

Представление массива

Массивы могут быть объявлены различными способами на разных языках. Для иллюстрации возьмем объявление массива Си.

Декларация массива

Массивы могут быть объявлены различными способами на разных языках. Для иллюстрации возьмем объявление массива Си.

Представление массива

Согласно приведенной выше иллюстрации, ниже приведены важные моменты, которые необходимо учитывать.

  • Индекс начинается с 0.

  • Длина массива равна 10, что означает, что он может хранить 10 элементов.

  • Каждый элемент может быть доступен через его индекс. Например, мы можем получить элемент с индексом 6 как 9.

Индекс начинается с 0.

Длина массива равна 10, что означает, что он может хранить 10 элементов.

Каждый элемент может быть доступен через его индекс. Например, мы можем получить элемент с индексом 6 как 9.

Основные операции

Ниже приведены основные операции, поддерживаемые массивом.

  • Traverse — печатать все элементы массива один за другим.

  • Вставка — добавляет элемент по указанному индексу.

  • Удаление — удаляет элемент по указанному индексу.

  • Поиск — поиск элемента по заданному индексу или по значению.

  • Обновить — обновляет элемент по указанному индексу.

Traverse — печатать все элементы массива один за другим.

Вставка — добавляет элемент по указанному индексу.

Удаление — удаляет элемент по указанному индексу.

Поиск — поиск элемента по заданному индексу или по значению.

Обновить — обновляет элемент по указанному индексу.

В C, когда массив инициализируется с размером, он присваивает значения по умолчанию своим элементам в следующем порядке.

Тип данных Значение по умолчанию
BOOL ложный
голец 0
ИНТ 0
поплавок 0.0
двойной 0.0f
недействительным
wchar_t 0

Операция вставки

Операция вставки заключается в вставке одного или нескольких элементов данных в массив. В зависимости от требования, новый элемент может быть добавлен в начале, конце или любом заданном индексе массива.

Здесь мы видим практическую реализацию операции вставки, где мы добавляем данные в конец массива —

Алгоритм

Пусть Array будет линейным неупорядоченным массивом элементов MAX .

пример

Результат

Пусть LA — линейный массив (неупорядоченный) с N элементами, а K — натуральное число, такое что K <= N. Ниже приведен алгоритм, в котором пункт вставляется в K- ю позицию LA —

1. Start
2. Set J = N
3. Set N = N+1
4. Repeat steps 5 and 6 while J >= K
5. Set LA[J+1] = LA[J]
6. Set J = J-1
7. Set LA[K] = ITEM
8. Stop

пример

Ниже приведена реализация вышеуказанного алгоритма —

Live Demo

#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- й позиции LA.

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

пример

Ниже приведена реализация вышеуказанного алгоритма —

Live Demo

#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

пример

Ниже приведена реализация вышеуказанного алгоритма —

Live Demo

#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- й позиции LA.

1. Start
2. Set LA[K-1] = ITEM
3. Stop

пример

Ниже приведена реализация вышеуказанного алгоритма —

Live Demo

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

Когда мы компилируем и выполняем вышеуказанную программу, она дает следующий результат: