...
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;
...
{C++ билдер} Алгоритм поиска
Здравствуйте.Помогите пожалуйста написать алгоритм последывательного поиска.
Поиска где? В массиве? Упорядоченном?
Цитата: wanja
Поиска где? В массиве? Упорядоченном?
Если бы речь шла об упорядоченом массиве, то последовательный поиск - это просто тупость.
Nook, самому не хочется что-то сделать? Это же элементарная задача, решение которой думаю и в книгах есть и в интернете, да и самому написать не проблема... Цикл, и сравнение искомого элемента с элементами массива. Оператор break еще пригодиться)
Помогите пожалуйста если это так легко:confused: :confused: :confused:
Цитата: Nook
Помогите пожалуйста если это так легко:confused: :confused: :confused:
Создаешь массив из допустим 100 элементов,заполняешь случайными
числами.Сумеешь такое сделать сам в Builder ? Дальше ищешь последовательным поиском.
Код:
Если массив упорядоченный то ОlgaKr правильно написала искать последовательным поиском глупо.Лучше использовать бинарный поиск.
Такой алгоритм даcт огромную эффективность по сравнению с линейным поиском : для миллиарда элементов в наихудшем случае потребуется 30 сравнений ! Максимальное количество сравнений, необходимое для двоичного поиска в любом сортированном массиве, может быть определено как первый показатель степени, при возведении в который числа 2 будет превышено число элементов в массиве.
Чем заполнить многоточие ???????
Цитата: 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 <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 так все то же.
Спасибо работает. Просмотрел немного разобрался.Только не пойму почему после ввода цифры оно вылетает . Ты случайно не знаешь что надо пропсать в коде ????????
Цитата: Nook
Спасибо работает. Просмотрел немного разобрался.Только не пойму почему после ввода цифры оно вылетает . Ты случайно не знаешь что надо пропсать в коде ????????
Где вылетает после cin>>key? Приведи свой код.
добавь в конец
Код:
system("pause");