С++
Для кожної шаблонної функції навести приклад роботи з такими типами:
int, double, char;
1. Опишіть шаблон функцію для обміном значень між двома змінними.
2. Опишіть шаблон функції сортування вставкою.
3. Опишіть шаблон функції сортування вибором.
4. Опишіть шаблон функції сортування бульбашкою.
5. Опишіть шаблон функції знаходження елемента в неупорядкованому масиві.
6. Опишіть шаблон функції знаходження елемента в упорядкованому масиві.
7. Опишіть шаблону функцію заміни елемента масиву на інший елемент.
8. Опишіть шаблону функцію інверсії масиву елементів.
Ответы
Ответ:
Объяснение:
Шаблонная функция для обмена значений между двумя переменными:
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[] =