Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Линейный поиск в массиве
Линейный поиск заключается в последовательном просмотре всех элементов массива до обнаружения первого элемента, удовлетворяющего заданному условию. В этом случае проверки прекращаются и организуется выход из цикла. Выход из цикла осуществляется с помощью включения условия отбора в условие окончания цикла.
Пример 1. Найти первый положительный элемент массива.
#include <iostream.h>
main()
{ const int n=5;
int m[n]={-1,-2,-1,3,-5};
int I;
for (I=0;I<n && m[I]<=0;I++)
;
if(I>=n)
cout<<”no”;
else
cout<<m[I];
}
Пример 2. Найти все простые числа, меньшие заданного натурального числа n.
Вариант 2.
Для ускорения вычислений можно использовать таблицу для уже найденных простых чисел и проверять делимость очередного кандидата только на числа из этой таблицы. Таблица формируется в процессе поиска с помощью размещения каждого следующего простого числа в первом свободном месте массива. Для этого используется вспомогательная переменная, которая хранит индекс этого элемента.
#include <iostream.h>
main()
{ long d,k,n,m,i;
long p[100];
cin>>n;
k=5; m=0;
p[0]=3;
cout<<1<<endl<<2<<endl<<3<<endl;
while (k<=n)
{ for (i=0;i<=m && p[i]*p[i]<=k && k%p[i]!=0;i++)
;
if(i>m || p[i]*p[i]>k)
{ cout<<k<<endl;
m=m+1;
p[m]=k;
}
k=k+2;
}
}
Дата публикования: 2015-09-17; Прочитано: 359 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!