С++
Для кожної шаблонної функції навести приклад роботи з такими типами:
int, double, char;
4. Опишіть шаблон функції сортування бульбашкою.
5. Опишіть шаблон функції знаходження елемента в неупорядкованому масиві.
6. Опишіть шаблон функції знаходження елемента в упорядкованому масиві.
7. Опишіть шаблону функцію заміни елемента масиву на інший елемент.
8. Опишіть шаблону функцію інверсії масиву елементів.
Ответы
Відповідь:
Шаблон функції сортування бульбашкою може виглядати так:
template <typename T>
void bubbleSort(T arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]);
}
}
}
}
Шаблон функції знаходження елемента в неупорядкованому масиві може виглядати так:
template <typename T>
int findElement(T arr[], int n, T x) {
for (int i = 0; i < n; i++) {
if (arr[i] == x) {
return i;
}
}
return -1;
}
Шаблон функції знаходження елемента в упорядкованому масиві може виглядати так:
template <typename T>
int binarySearch(T arr[], int l, int r, T x) {
while (l <= r) {
int m = l + (r-l)/2;
if (arr[m] == x) {
return m;
}
if (arr[m] < x) {
l = m + 1;
} else {
r = m - 1;
}
}
return -1;
}
Шаблону функція заміни елемента масиву на інший елемент може виглядати так:
template <typename T>
void replaceElement(T arr[], int n, T oldVal, T newVal) {
for (int i = 0; i < n; i++) {
if (arr[i] == oldVal) {
arr[i] = newVal;
}
}
}
Шаблону функція інверсії масиву елементів може виглядати так:
template <typename T>
void reverseArray(T arr[], int n) {
for (int i = 0; i < n/2; i++) {
swap(arr[i], arr[n-i-1]);
}
}
Пояснення: