Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

{C++ билдер} Алгоритм поиска

7.4K
24 мая 2007 года
Nook
65 / / 17.01.2007
Здравствуйте.Помогите пожалуйста написать алгоритм последывательного поиска.
247
25 мая 2007 года
wanja
1.2K / / 03.02.2003
Поиска где? В массиве? Упорядоченном?
242
25 мая 2007 года
Оlga
2.2K / / 04.02.2006
Цитата: wanja
Поиска где? В массиве? Упорядоченном?


Если бы речь шла об упорядоченом массиве, то последовательный поиск - это просто тупость.

Nook, самому не хочется что-то сделать? Это же элементарная задача, решение которой думаю и в книгах есть и в интернете, да и самому написать не проблема... Цикл, и сравнение искомого элемента с элементами массива. Оператор break еще пригодиться)

7.4K
26 мая 2007 года
Nook
65 / / 17.01.2007
Помогите пожалуйста если это так легко:confused: :confused: :confused:
320
27 мая 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: Nook
Помогите пожалуйста если это так легко:confused: :confused: :confused:


Создаешь массив из допустим 100 элементов,заполняешь случайными
числами.Сумеешь такое сделать сам в Builder ? Дальше ищешь последовательным поиском.

Код:
...
             cout<<"Input key"<<endl;
    int key;// ключ поиска
    cin>>key;
    int count = 0;// счетчик
    for(int i = 0;i < size;++i){
        if(mass == key){
           ++count;
           cout<<"Key : "<<key<<" find in "<<i
                 <<" position"<<endl;
        }
    }      
    if(count == 0)
    cout<<"Not found"<<endl;
...

Если массив упорядоченный то ОlgaKr правильно написала искать последовательным поиском глупо.Лучше использовать бинарный поиск.
Такой алгоритм даcт огромную эффективность по сравнению с линейным поиском : для миллиарда элементов в наихудшем случае потребуется 30 сравнений ! Максимальное количество сравнений, необходимое для двоичного поиска в любом сортированном массиве, может быть определено как первый показатель степени, при возведении в который числа 2 будет превышено число элементов в массиве.
7.4K
29 мая 2007 года
Nook
65 / / 17.01.2007
Чем заполнить многоточие ???????
320
29 мая 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: Nook
Чем заполнить многоточие ???????


Тем,что я написал:) Создаешь массив и заполняешь его случайными
числами.

Код:
#include <iostream>
#include <ctime>
using namespace std;
const int size = 100;//размер массива
int _tmain(int argc, _TCHAR* argv[])
{
    srand(time(0));
    int mass[size];// массив
    for(int i = 0;i < size;++i)
       mass = rand() % 100;// заполнение случ.числами
    cout<<"\tArray"<<endl;
             for(int i = 0;i < size;++i)// печатаем
        cout<<mass<<' ';
    cout<<endl;
             cout<<"Input key"<<endl;
    int key;// ключ поиска
    cin>>key;// вводим ключ
    int count = 0;// счетчик
    for(int i = 0;i < size;++i){
        if(mass == key){
           ++count;
           cout<<"Key : "<<key<<" find in "<<i
                 <<" position"<<endl;
        }
    }      
    if(count == 0)
    cout<<"Not found"<<endl;
    return 0;
}

Для Билдера будут незначительные отличия #include <iostream.h>(ну ты
же знаешь какие заговочные файлы для консольного приложения ?)
с ф-ия rand() немного по другому. Посмотри тут.A так все то же.
7.4K
29 мая 2007 года
Nook
65 / / 17.01.2007
Спасибо работает. Просмотрел немного разобрался.Только не пойму почему после ввода цифры оно вылетает . Ты случайно не знаешь что надо пропсать в коде ????????
320
29 мая 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: Nook
Спасибо работает. Просмотрел немного разобрался.Только не пойму почему после ввода цифры оно вылетает . Ты случайно не знаешь что надо пропсать в коде ????????


Где вылетает после cin>>key? Приведи свой код.

257
29 мая 2007 года
kosfiz
1.6K / / 18.09.2005
Nook
добавь в конец
 
Код:
system("pause");
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог