Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21

Напишите шаблонные функции для: - линейного поиска; - двустороннего поиска; - бинарного поиска;

14.01.2022, 20:38. Показов 1366. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите шаблонные функции для:
- линейного поиска;
- двустороннего поиска;
- бинарного поиска;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2022, 20:38
Ответы с готовыми решениями:

Алгоритмы линейного поиска, линейного поиска с барьером, бинарный поиск
Задан одномерный массив целых чисел A. Найти первый нулевой и последний положительные элементы и поменять их местами.

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

Разработать программу для поиска нужной фамилии в массиве, используя метод бинарного поиска
Разработать программу для поиска нужной фамилии в массиве, используя метод бинарного поиска. Добавлено через 2 минуты С...

7
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
15.01.2022, 12:45  [ТС]
может кто то ответить ?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
15.01.2022, 13:22
Цитата Сообщение от rar60nagib Посмотреть сообщение
может кто то ответить ?
А где вопрос-то?
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
15.01.2022, 13:29
Двусторонний поиск слишком геморно.
0
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
17.01.2022, 10:13  [ТС]
а можете расписать по двум остальным типам поиска ?
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
17.01.2022, 10:27
Лучший ответ Сообщение было отмечено rar60nagib как решение

Решение

Код с инета линейный поиск
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
using namespace std;
 
// linear search template function
// arr: array
// n: size of array
// x: value to search
// the function returns the index of x if it is present in arr
// otherwise it returns -1
template <class T>
int LinearSearch(T arr[], int n, T x) {
 
    for (int i = 0; i < n; ++i) {
 
        if (arr[i] == x)
            return i;
 
    }
 
    return -1;
 
}
 
int main() {
 
    int arr[] = { 6 , 43 ,23 ,6, 12 ,43, 3, 4, 2, 6 };
    int n, index, x;
    n = sizeof(arr) / sizeof(int); // size of arr
 
    cout << "Integer Array: ";
    for (int i = 0; i < n; ++i) cout << arr[i] << ' ';
    cout << endl;
 
    cout << "Enter Value you want to search: ";
    cin >> x;
 
    index = LinearSearch(arr, n, x);
 
    if (index != -1)
        cout << x << " is present in the array at position " << index << endl;
    else
        cout << x << " is not present in the array \n" << endl;
        
    /*-----------------------------------------------------------------------------*/
 
    char charArr[] = { 'A', 'v', 'D', 'R', 'T','u', 'j', 'o' };
    char c;
    n = sizeof(charArr) / sizeof(char);
 
    cout << "Char Array: ";
    for (int i = 0; i < n; ++i) cout << charArr[i] << ' ';
    cout << endl;
 
    cout << "Enter character you want to search: ";
    cin >> c;
 
    index = LinearSearch(charArr, n, c);
 
    if (index != -1)
        cout << c << " is present in the array at position " << index << endl;
    else
        cout << c << " is not present in the array " << endl;
 
}


Добавлено через 4 минуты
Бинарный с инета
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include<iostream>
using namespace std;
 
// binary search function using template
// n: size of arr
// x: value to search
// the fucntion returns -1 if x is not found in arr
// otherwise it returns index of x
template<typename T>
int binary_search(T arr[],int n,T x)
{
    int start = 0;
    int end = n-1;
    while(start<=end)
    {
        int mid = (start+end)/2;
        if(arr[mid]==x) 
            return mid;
        else if(arr[mid]<x) 
            start = mid + 1;
        else    
            end = mid - 1;
    }
    return -1;
}
 
// Template function to print array
// n: size of arr
template<typename T>
void PrintArray(T arr[], int n)
{
    for (int i = 0; i < n; ++i)
        cout << arr[i] << " ";
    cout << "\n\n";
}
 
int main()
{
 
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ,12 };
    int n = sizeof(arr) / sizeof(int);
 
    cout << "Array : " << endl;
    PrintArray(arr, n);
    
    int x, index;
    cout<<"Enter value you want to Search: ";
    cin>>x;
    
    index = binary_search(arr, n, x);
    
    if(index==-1)
        cout<<x<<" is not present in the array"<<endl;
    else
        cout<<x<<" is present in the array at position "<<index<<endl;
 
}


Добавлено через 17 секунд
Двусторонний не смог найти.
0
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
17.01.2022, 10:35  [ТС]
спасибо большое!
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
17.01.2022, 10:38
Нашел еще вот такой поиск, он называется тернарный, не знаю подходит ли для двустороннего и плюс он сишный
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<stdio.h>
int ternary_search(int arr[], int n, int x) {
    int start = 0;
    int end = n - 1;
    int mid1;
    int mid2;
    while (start <= end) {
        int mid1 = (end - start) / 3 + start;
        int mid2 = 2 * (end - start) / 3 + start;
        if (x == arr[mid1]) {
            return mid1;
        }
        else if (x == arr[mid2]) {
            return mid2;
        }
        else if (x < arr[mid1]) {
            end = mid1 - 1;
        }
        else if (x < arr[mid2]) {
            start = mid1 + 1;
            end = mid2 - 1;
        }
        else {
            start = mid2 + 1;
        }
    }
    return -1;
}
int main()
{
    int arr[] = { 2,3,5,7,10,10,11,15,17,20,25,30,32,36,40 };
    int n = 15;
    int index;
    int x;
    printf("Enter element you want to search: ");
    scanf("%d", &x);
    index = ternary_search(arr, n, x);
    if (index != -1) {
        printf("%d%s%d", x, " is present at index ", index);
    }
    else {
        printf("%d%s", x, " is not present in the given array\n");
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2022, 10:38
Помогаю со студенческими работами здесь

Создать программу для поиска первого нечетного элемента в заданном массиве методом бинарного поиска
Бинарный поиск Первый нечетный, помогите пожалуйста.

Напишите программу для выполнения бинарного поиска
Напишите программу для выполнения бинарного поиска. Результатом работы алгоритма бинарного поиска является позиция значения в массиве,...

Три процедуры поиска (линейного, линейного с барьером, бинарного)
уважаемые пользователи! помогите плз а то тупники( . Напишите три процедуры поиска (линейного, линейного с барьером, бинарного) для работы...

Написать алгоритм поиска данных методом линейного поиска
написать алгоритм поиска данных методом линейного поиска

Сравнить алгоритмы линейного поиска и двоичного поиска
Сравнить алгоритмы линейного поиска и двоичного поиска, представленного циклами и рекурсией 1. Для выбранного задания составить указанные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru