Нужно написать функцию bsearch, которая принимает ** вход отсортированный по убыванию...

0 голосов
52 просмотров

Нужно написать функцию bsearch, которая принимает на вход отсортированный по убыванию массив целых чисел и целое число X. В качестве результата функция должна возвращать индекс первого элемента массива, строго меньшего X. В Вашей реализации функция может принимать любое количество любых параметров, только 2 этих параметра обязательны.


Информатика (17 баллов) | 52 просмотров
0

Язык программирования какой?

0

С++

Дан 1 ответ
0 голосов

Решение тут, с исходниках, в коментах код

(1.4k баллов)
0

#include //библиотека потоков ввода/вывода
#include //библиотека "вектор", это обертка над динамическим массивом
using namespace std; /*
* пространство имен, без него компилятор не поймет,
* что за функции ты хочешь использовать и что за объекты
* создавать, то есть библиотеки,
* что подключили мы выше - не заведутся без него.
*/

0

//функция проходится по коллекции, при первом вхождении елемента меньше сравниваемого
//выходит из цикла и возращает значение
//твой X это comparisionElement.
//все параметры передаем по ссылке во избежании копирования

0

//-----------------------------------------------------------------------------
int getFirstLowElement(const vector& array, const int& comparisionElement)
//-----------------------------------------------------------------------------
{
int returnedValue;
for (auto element : array)
{
if (comparisionElement > element)
{
returnedValue = element;
break;
}
}
return returnedValue;
}

0

//самая простая и известная сортировка пузырьком, ищи в интернете, разбирайся

//-----------------------------------------------------------------------------
void sortVector(vector& array)
//-----------------------------------------------------------------------------

0

{
for (int i = array.size() - 1; i >= 0; --i)
{
for (int j = 0; j < i; ++j)
{
if (array[j] < array[j + 1])
{
swap(array[j], array[j+1]);
}
}
}
}

0

//основная функция программы

//-----------------------------------------------------------------------------
int main()
//-----------------------------------------------------------------------------
{

0

vector myArray; //создаем вектор(массив), что хранит значения типа int
double arraySize; //переменная, что хранит размер вводимого массива
int elementBuf; //в этой переменной будем хранить вводимый елемент
int comparisionElement; //вводим твой X

cout << "Enter array size: ";<br> cin >> arraySize; //вводим размер массива

myArray.reserve(arraySize); //резервируем размер под кол-во елементов

0

for (int i = 0; i < arraySize; ++i) //цикл инициализации вектора
{
cout << "Enter element: ";<br> cin >> elementBuf; //вводим текущий елемент
myArray.push_back(elementBuf); //вставляем его в вектор
cout << "Elements left: " << arraySize - (i + 1); //расчитываем кол-во оставшихся елементов<br> cout << endl << endl;<br> }

cout << endl;<br>
sortVector(myArray); //сортируем вектор по возрастанию

0

cout << "Enter comparision element: ";<br> cin >> comparisionElement;

cout << getFirstLowElement(myArray, comparisionElement);<br> cout << endl;<br>
//останавливаем выполнение программы, что бы посмотреть результат
system("pause");
//возращаем значение '0', что значит для системы, что программа завершила работу успешно (без ошибок)
return 0;
}