Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к экзамену по ЯиМП.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
166.06 Кб
Скачать

14. Линейный поиск в одномерном массиве. Пример.

Линейный поиск (последовательный, полный поиск)

Линейный поиск осуществляется в несортированных массивах, при этом количество операций пропорционально числу элементов. Если n элементов, то количество операций имеет порядок n (O(n)).

Пример: найти максимальный элемент массива

#include <stdio.h>

void main()

{

Const n=10;

int i,k=1, a[n+1];

for(i=1;i<=n;i++)

{ printf(“a%d=”,i); scanf(“%d”,a[i]); }

for(i=1;i<=n;i++)

if(a[k]<a[i]) k=i;

printf(“max a[%d]=%d\n”,k,a[k]);

}

15. Бинарный поиск в одномерном массиве. Пример.

Дихтомия, метод деления пополам, метод половинного деления.

Данный метод используется только для сортированных и с разными элементами массивов.

Пример: найти элемент равный р

#include <stdio.h>

void main()

{

const n=10;

int mid, p, x[n+1], a=1, b=n;

for(int i=1;i<=n;i++)

{ printf(“a%d=”,i); scanf(“%d”,a[i]); }

printf (“p=”); scanf(“%d”,&p);

while (a<=b)

{

mid=(a+b)/2;

if (x[mid]==p) break;

if (x[mid]<p) a=mid+1; else b=mid;

}

if (x[mid] ==p)

printf(“p=a[%d]=%d\n”,mid,a[mid]);

else printf(“нет такого элемента”);

}

16. Cортировка. Метод пузырька. Пример.

Сортировка – процесс перестановки объектов заданной совокупности в определенном порядке (возрастание, убывание).

В методе Идея состоит в последовательном перемещении попарных перестановок наибольшего значения сначала на место N-го элемента, затем (N-1)-го и т.д.

Пример:

#include <stdio.h>

void main()

{

const n=20;

int i, k, a[n+1], R;

for(i=1;i<=n;i++)

{ printf(“a%d=”,i); scanf(“%d”,a[i]); }

for(k=1;k<=n-1; k++)

for(i=1;i<=n-k; i++)

{

if(a[i]>a[i+1])

R=a[i];

a[i]=a[i+1];

a[i+1]=R;

}

for(i=1;i<=n;i++)

printf(“a%d=%d”, i, a[i]);

}

17. Сортировка. Метод выбора. Пример.

Сортировка – процесс перестановки объектов заданной совокупности в определенном порядке (возрастание, убывание).

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

Затем ищем наибольший элемент до предпоследнего элемента, эта процедура повторяется.

Пример:

#include <stdio.h>

void main()

{

Const n=20;

int i, k, m=1, a[n+1], R;

for(i=1;i<=n;i++)

{ printf(“a%d=”,i); scanf(“%d”,a[i]); }

for(k=1;k<=n-1; k++)

for(i=2;i<=n+1-k; i++)

{

if(a[i]>a[m]) m=i

R=a[n+1-k];

a[n+1-k]=a[m];

a[m]=R;

}

for(i=1;i<=n;i++)

printf(“a%d=%d”, i, a[i]);

}