Форум программистов, компьютерный форум CyberForum.ru

Бинарный поиск в текстовом файле - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ создать файл http://www.cyberforum.ru/cpp-beginners/thread37154.html
Помогите пожайлуста исправить программу. Файл вроде создает,а вот просмотр,добавление и изменение никак. Подскажите как поменять местами в файле записи о первых двух спортсменах.Заранее благодарен! Используя функции и режим меню, создать файл из 10 структур, просмотреть файл, добавить в файл новую информацию , применяя режим прямого доступа. Структура имеет вид: фамилия спортсмена, его номер,...
C++ Массивы (Матрицы) Общая постановка. Составить программы - одномерные массивы: задания 1-25. Массивы создаются в динамической области памяти с использованием операций NEW и DELETE. Ввод исходных данных: реальный размер массивов и их значения. Обращение к элементам массива – через косвенную адресацию. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, больших значения t и первым на печать... http://www.cyberforum.ru/cpp-beginners/thread37139.html
Помошьс функциями сравнения времени. C++
Доброго времени суток.Курсовая работа по темам:текстовые-бинарные файлы(переброс данных с одного в другой),стэки,структуры,работа с датой и временем. Задача: 1)Запись в бинарный файл:номер поезда,направление,время отправления,время прибытия,расстояние. 2)Перебросить данныее из бинарного файла в текстовый. 3)Вывод данных из обоих файлов в 2 таблицы. 4)Вывести данные о поездах,которые...
Istream_iterator C++
Есть задача: надо заменить циклы в программе на что-то с использование обобщеенного проргаммирования и std library функций: #include <string> #include <iostream> #include <sstream> #include "merge.h" #include <algorithm> // for sort() using namespace std;
C++ графические функции (анимация) http://www.cyberforum.ru/cpp-beginners/thread37127.html
прошу помочь с задачей:изобразить на экране снежинки,которые падают и увеличиваются в размерах.Снежинки имеют по 6 промежутков длинной 1 с одной точки,с конца каждого лучика виходят пять лучиков длинной 1/k,из конца которых выходит пять лучей длинной 1/k^2. заранее благодарен за помощь.
C++ Простая проверка почты Может кто знает исходники программки на Visual C++ простой проверки почты? Например если при проверки почты пришло письмо с определённым содержанием, сделать какое-то действие. Заранее благодарю... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17463 / 5701 / 361
Регистрация: 30.03.2009
Сообщений: 15,648
Записей в блоге: 26
29.05.2009, 16:20     Бинарный поиск в текстовом файле
Можно тупо считать из файла все 10 тыщ слов (займут в памяти немного места).

Либо сделать первый проход и запомнить 10 тыщ элементов с позициями начала слова. Потом в массиве из 10 тыщ позиций методом бинарного поиска проверять слово. Идиотизм такого метода почти очевиден

Либо вот так. Делаемм SEEK на середину файла (середину в байтах), далее читаем до энтера - таким образом нашли начало слова, которое приблизительно в середине файла находится. И так даелее, делаем SEEK в терминах абсолютного байтового смещения, ищем начало слова и проверяем. Правда возникнет геморой ближе к концу. Типа если у нас диапазон сузился до 10 байт, при этом в этом диапазоне слово 3 байта и 7 байт. По такому алгоритму мы доначала слова не доберёмся, а потому тут что-то думать надо

Идей, как тут применить бинарный поиск больше нет
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru