Среда, 08.01.2025, 20:06
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » c++

Поиск

Поиск

Часто, программисту приходится работать с большими объемами данных, хранящимися в виде массивов. Может оказаться необходимым определить, содержит ли массив значение, которое соответствует определенному ключевому значению. Процесс нахождения какого-то элемента массива называет поиском. В данном уроке мы рассмотрим наиболее простой способ поиска - линейный поиск.

Линейный поиск сравнивает каждый элемент массива с ключом поиска. Поскольку массив не упорядочен, вполне вероятно, что отыскиваемое значение окажется первым элементом массива. Но, в среднем, программа должна сравнить с ключом поиска половину элементов массива.

#include <iostream.h >

int LinearSearch(int [], int, int);

void main()
{
 const int arraySize = 100;
 int a[arraySize], searchKey, element;

 for( int x = 0; x < arraySize; x++)
 a[x] = 2*x;

//Следующая строка выводит на экран сообщение
//Введите ключ поиска:
 cout << "Please, enter the key: ";
 cin >> searchKey;
 element = LinearSearch(a, arraySize, searchKey);

 if(element != -1)
//Следующая строка выводит на экран сообщение
//Найдено значение в элементе 
 cout << "\nThe key was found in element " << element << '\n';
//Следующая строка выводит на экран сообщение
//Значение не найдено

 else cout << "\nValue not found ";
}

int LinearSearch (int array[], int size, int key)
{
 for (int i = 0; i < size; i++)
 if(array[i] == key)
 return i;
 return -1;
}


Метод линейного поиска хорошо работает для небольших или для несортированных массивов. И хотя для больших массивов линейный поиска неэффективен, лмнейный поиск абсолютно надежен. 

Категория: c++ | Добавил: slava (29.04.2011)
Просмотров: 1016 | Комментарии: 2 | Рейтинг: 5.0/1
Всего комментариев: 2
2 slava  
0
int LinearSearch (int array[], int size, int key) возвращает индекс найденного элемента в массиве, а не найденное слово.
-1 индекса массива нет...индексирование начинается с 0..
..смотрите внимательнее!!

1 Alan  
0
А если я ищу -1?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]