Найти книгу 1966 г. издания. Методы поиска: полный перебор и интерполяционный

Всем добрый день! Нужна ваша помощь

#include<iostream>
#include<string>
using namespace std;


struct Bibliot
{
public:
    string name;
    string author;
    int year;
    int countOfPages;
};

void printBibl(Bibliot* obj, int n) {
    for (int i = 0; i < n; i++)
    {
                   cout << "Nomer: " << i << "\n";
                   cout << "Nazvanie: " << obj[i].name << "\n";
        cout << "Avtor: " << obj[i].author << "\n";
                   cout << "God: " << obj[i].year << "\n";
    }
    cout << endl;
}


void swapB(Bibliot* i, Bibliot* j)
{
    Bibliot t;
    t = *i;
    *i = *j;
    *j = t;
}

void bubbleSort(Bibliot* obj, int len)
{
    int i, j;
    for (i = 0; i < len - 1; i++) {
        for (j = 0; j < len - 1; j++) {
            if (obj[j].year > obj[j + 1].year) {
                swapB(&obj[j], &obj[j + 1]);
            }
        }
    }
}
void bubbleSortA(Bibliot* obj, int len)
{
    int i, j;
    for (i = 0; i < len - 1; i++) {
        for (j = 0; j < len - 1; j++) {
            if (obj[j].author > obj[j + 1].author) {
                swapB(&obj[j], &obj[j + 1]);
            }
        }
    }
}

int main() {
    setlocale(LC_CTYPE, "Rus");
    Bibliot obj[100];
    obj[0].name = "Лес";
    obj[0].author = "Пушкин";
    obj[0].year = 2005;
    obj[0].countOfPages = 55;

    obj[1].name = "Школа";
    obj[1].author = "Лермонтов";
    obj[1].year = 2002;
    obj[1].countOfPages = 35;

    obj[2].name = "Маяк";
    obj[2].author = "Есенин";
    obj[2].year = 2020;
    obj[2].countOfPages = 4;

    obj[3].name = "Горы";
    obj[3].author = "Кинг";
    obj[3].year = 2016;
    obj[3].countOfPages = 754;

    obj[4].name = "Улица";
    obj[4].author = "Тургенев";
    obj[4].year = 3066;
    obj[4].countOfPages = 2045;


    printBibl(obj, 5);
    bubbleSortA(obj, 5);
    printBibl(obj, 5);

    return 0;
}

Найти книгу 1966 г. издания. Методы поиска: полный перебор и интерполяционный, помогите, пожалуйста


Ответы (1 шт):

Автор решения: OlegUP

1: Вам нужно отсортировать массив не по имени книги, а по году выпуска.

2: Линейный поиск прост, простым перебором всех элементов массива.

3: Пример интерполяционного поиска: https://ru.wikipedia.org/wiki/Интерполяционный_поиск, он основан на двоичном, гуглите что такое двоичный поиск.

→ Ссылка