Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream> // Для ВЫВОДА (и ввода)
- #include "stdafx.h" // Библиотека для MVS
- using namespace std;
- int main() {
- int size = 1000; // Размер массива (макс. знач минус 0.1)
- float arr[1000]; // Массив
- float value; // Искомое значение
- // Заполнение массива
- for (int i = 0; size > i; i++) {
- arr[i] = i * 0.1;
- }
- // Ввод искомого значения
- cout << "Сгенерирован отсортированный массив от 0.0 до 99.9" << endl;
- cout << "Введите искомое значение: ";
- cin >> value;
- // ПОСЛЕДОВАТЕЛЬНЫЙ ПОИСК
- int count;
- for (count = 1; size >= count; count++) {
- if (arr[count - 1] == value) {
- cout << "Искомое найдено под индексом " << count - 1 << endl;
- break;
- } else if (arr[count - 1] > value || size == count) {
- cout << "Искомое не найдено" << endl;
- break;
- }
- }
- cout << "Кол-во шагов ПОСЛЕДОВАТЕЛЬНОГО ПОИСКА: " << count << endl;
- // БИНАРНЫЙ ПОИСК
- count = 0;
- int left = 0; // Левая граница (size - правая)
- while (true) {
- int midd = (left + size) / 2; // Индекс текущего элемента
- count++; // Счетчик шагов
- if (arr[midd] > value) {
- // Если текущее значение больше искомого
- size = midd - 1;
- } else if (arr[midd] < value) {
- // Если текущее значение меньше искомого
- left = midd + 1;
- } else {
- // Если найдено искомое
- break;
- }
- if (left > size) {
- // Если не найдено искомое
- break;
- }
- }
- cout << "Кол-во шагов БИНАРНОГО ПОИСКА: " << count << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement