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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
trunks1994
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 12
#1

Алгоритм прямого поиска. Реализация на С++ - C++

11.05.2013, 16:13. Просмотров 2045. Ответов 1
Метки нет (Все метки)

может кто-то написать алгоритм прямого поиска на С++?
очень надо...
суть поиска такова:

Алгоритм прямого поиска


Идея алгоритма:
1. I=1,
2. сравнить I-й символ массива T с первым символом массива W,
3. совпадение → сравнить вторые символы и так далее,
4. несовпадение → I:=I+1 и переход на пункт 2,

Условие окончания алгоритма:
1. подряд М сравнений удачны,
2. I+M>N, то есть слово не найдено.

Сложность алгоритма:
Худший случай. Пусть массив T→{AAA….AAAB}, длина │T│=N, образец W→{A….AB}, длина │W│=M. Очевидно, что для обнаружения совпадения в конце строки потребуется произвести порядка N*M сравнений, то есть O(N*M).

Недостатки алгоритма:
1. высокая сложность — O(N*M), в худшем случае – Θ((N-M+1)*M);
2. после несовпадения просмотр всегда начинается с первого символа образца и поэтому может включать символы T, которые ранее уже просматривались (если строка читается из вторичной памяти, то такие возвраты занимают много времени);
3. информация о тексте T, получаемая при проверке данного сдвига S, никак не используется при проверке последующих сдвигов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2013, 16:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритм прямого поиска. Реализация на С++ (C++):

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) - C++
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void lab () { int s1 = 0; int s2 =...

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар) - C++
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная головоломка). Определение. Перестано́вочные...

Реализация бинарного поиска - C++
Здравствуйте. Решил реализовать на С++ бинарный поиск. Вместо массива я взял vector (думаю особой роли это не играет), все бы хорошо, НО....

Реализация поиска в глубину - C++
Всем привет. Решил начать учить теорию графов, решаю задачки на одном сайте. Столкнулся с задачкой в которой просто нужно реализовать поиск...

Реализация Поиска В Файле - C++
Здравствуйте! В книге Лафоре по ООП на С++ есть задача, реализовать в программе приведенной в главе ( ее я собственно привожу ниже, правда...

Реализация дерева поиска - C++
Мне крайне срочно необходимо реализовать дерево поиска на с++(чтобы пользователь сам вводил значения), я и сам конечно пытался сделать это,...

1
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.05.2013, 17:33 #2
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
#include <iostream>
#include <cstring>
 
char* userStrstr(const char* haystack, char* needle)
{
    for (const char* hp = haystack; hp != haystack + strlen(haystack); ++hp)
    {
        const char* np = needle;
        const char* tmp = hp;
        for ( ; np != needle + strlen(needle); ++np)
        {
            if (*tmp != *np)
            {
                break;
            }
            else
            {
                ++tmp;
            }
        }
        if (np == needle + strlen(needle))
        {
            return needle;
        }
    }
    return 0;
}
 
int main()
{
    char first[] = "Hello, dyadya Vasya!";
    char second[] = "Vasya";
 
    if (userStrstr(first, second))
    {
        std::cout << second << std::endl;
    }
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 17:33
Привет! Вот еще темы с ответами:

Реализация поиска мостов на графе - C++
Подскажите, в чем проблема. Вроде весь код написан верно, но ничего не считает в итоге. У меня есть неориентированный граф, который я задаю...

Реализация бинарного дерева поиска - C++
Задача: Реализация бинарного дерева поиска Компилируется нормально, а при запуске выбивает ошибку : &quot;Необработанное исключение по адресу...

Реализация бинарного дерева поиска - C++
Не выводит значения узлов деревьев, как я понял происходит утечка памяти, но я не пойму, что нужно сделать. Программа ошибку не выдаёт....

Реализация словаря в двоичном дереве поиска - C++
Помогите,пожалуйста, создать программу на С++! Тема: Релизация словаря в двоичном дереве поиска,очень нужно


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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