Алгоритмы поиска и их программа


О линейном поиске в структуре данных и алгоритмах


Download 0.52 Mb.
bet9/10
Sana18.12.2022
Hajmi0.52 Mb.
#1027828
TuriКурсовая
1   2   3   4   5   6   7   8   9   10
Bog'liq
Алгоритмы поиска и их программа

О линейном поиске в структуре данных и алгоритмах
Чизикли кидириш — иуда оддий кидириш алгоритми хисобланади. Ушбу турдаги кидирувда барча элементлар боича кетма-кет кидирув амалга оширилади.Хар бир элемент текширилади ва агар мос келадиган нарса топилган бо'лса, у кайтариб берилади, акс холда кидириш ма' лумот то' плэш оксиригача давом этади.Хар бир элемент текширилади ва агар мос келадиган нарса топилган бо'лса, у кайтариб берилади, акс холда кидириш ма' лумот то' плэш оксиригача давом этади.
Алгоритм
Линейный поиск (линейный поиск ( Massiv A, Qiymat x)
Шагом 1: Set i to 1
Step 2: if i > n then go to Qadam 7
Шагом 3: if A[i] = x then go to step 6
Шагом 4: Set i to i + 1
Шагом 5: Go to Step 2
Шагом 6: Print Element x Found at index i and go to step 8
Шагом 7: Print element not found
Шагом 8: Выход
Pseudocode
procedure linear_search (list, value)
for each item in the list
if match item == value
return the item's location
end if
end for
end procedure
Программа линейного поиска
#include
#define MAX 20
// array of items on which linear search will be conducted.
int intArray[MAX] = {1,2,3,4,6,7,9,11,12,14,15,16,17,19,33,34,43,45,55,66};
void printline(int count) {
int i;
for(i = 0;i printf("=");
}
printf("=\n");
}
// this method makes a linear search.
int find(int data) {
int comparisons = 0;
int index = -1;
int i;
// navigate through all items
for(i = 0;i// count the comparisons made
comparisons++;
// if data found, break the loop
if(data == intArray[i]) {
index = i;
break;
}
}
printf("Total comparisons made: %d", comparisons);
return index;
}
void display() {
int i;
printf("[");
// navigate through all items
for(i = 0;iprintf("%d ",intArray[i]);
}
printf("]\n");
}
void main() {
printf("Input Array: ");
display();
printline(50);
//find location of 1
int location = find(55);
// if element was found
if(location != -1)
printf("\nElement found at location: %d" ,(location+1));
else
printf("Element not found.");
}

ЗАКЛЮЧЕНИЕ
Таким образом, операция сравнения выполняется N раз, чтобы определить, является ли искомый элемент последним элементом списка или нет. N-это верхний предел любого алгоритма поиска, который означает, что если сравнения выполняются более чем n раз, по крайней мере, два сравнения выполняются с одним элементом списка. Из этого следует, что проделана сверхурочная работа и требуется доработка алгоритма.
Анализ среднего состояния. Есть два средних случая для алгоритма поиска. В первом случае поиск проходит успешно, во втором случае поиск неэффективен, то есть искомый элемент может отсутствовать в списке.
Если искомый элемент находится в списке, то N раз равно одному из возможных состояний: первое, второе, третье и т. д.k. Мы предполагаем, что все эти состояния одинаково вероятны, что означает, что вероятность того, что искомый элемент встретится в одном из существующих состояний, будет равна 1/N.



Download 0.52 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling