Предмет: Информатика, автор: Kukuwka0Ha0DepeBe

С++
Для кожної шаблонної функції навести приклад роботи з такими типами:
int, double, char;
1. Опишіть шаблон функцію для обміном значень між двома змінними.
2. Опишіть шаблон функції сортування вставкою.
3. Опишіть шаблон функції сортування вибором.
4. Опишіть шаблон функції сортування бульбашкою.
5. Опишіть шаблон функції знаходження елемента в неупорядкованому масиві.
6. Опишіть шаблон функції знаходження елемента в упорядкованому масиві.
7. Опишіть шаблону функцію заміни елемента масиву на інший елемент.
8. Опишіть шаблону функцію інверсії масиву елементів.

Ответы

Автор ответа: Аноним
0

Ответ:

Объяснение:

Шаблонная функция для обмена значений между двумя переменными:

css

Copy code

template<typename T>

void swap(T& a, T& b) {

   T temp = a;

   a = b;

   b = temp;

}

Пример работы:

arduino

Copy code

int x = 5, y = 10;

swap(x, y);

// x = 10, y = 5

double a = 3.14, b = 2.71;

swap(a, b);

// a = 2.71, b = 3.14

char c1 = 'a', c2 = 'b';

swap(c1, c2);

// c1 = 'b', c2 = 'a'

Шаблонная функция для сортировки вставкой:

css

Copy code

template<typename T>

void insertionSort(T arr[], int n) {

   int i, j;

   T key;

   for (i = 1; i < n; i++) {

       key = arr[i];

       j = i - 1;

       while (j >= 0 && arr[j] > key) {

           arr[j + 1] = arr[j];

           j = j - 1;

       }

       arr[j + 1] = key;

   }

}

Пример работы:

scss

Copy code

int arr1[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };

int n1 = sizeof(arr1) / sizeof(arr1[0]);

insertionSort(arr1, n1);

// arr1 = { 1, 1, 2, 3, 3, 4, 5, 5, 6, 9 }

double arr2[] = { 3.14, 2.71, 1.41, 1.73, 0.69 };

int n2 = sizeof(arr2) / sizeof(arr2[0]);

insertionSort(arr2, n2);

// arr2 = { 0.69, 1.41, 1.73, 2.71, 3.14 }

char arr3[] = { 'c', 'o', 'd', 'e', 'r' };

int n3 = sizeof(arr3) / sizeof(arr3[0]);

insertionSort(arr3, n3);

// arr3 = { 'c', 'd', 'e', 'o', 'r' }

Шаблонная функция для сортировки выбором:

css

Copy code

template<typename T>

void selectionSort(T arr[], int n) {

   int i, j, min_idx;

   for (i = 0; i < n - 1; i++) {

       min_idx = i;

       for (j = i + 1; j < n; j++)

           if (arr[j] < arr[min_idx])

               min_idx = j;

       swap(arr[min_idx], arr[i]);

   }

}

Пример работы:

scss

Copy code

int arr1[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };

int n1 = sizeof(arr1) / sizeof(arr1[0]);

selectionSort(arr1, n1);

// arr1 = { 1, 1, 2, 3, 3, 4, 5, 5, 6, 9 }

double arr2[] =

Похожие вопросы
Предмет: Математика, автор: Аноним