Ketma-ket qidiruv algoritmi


Пример на Си: Найти в массиве элемент со значением, равным 3



Download 26,65 Kb.
bet2/3
Sana31.12.2021
Hajmi26,65 Kb.
#278774
1   2   3
Пример на Си: Найти в массиве элемент со значением, равным 3.

#include

#include // для переключения на русский язык - функция system()

// Функция поиска в массиве k размерности n

// элемента со значением key

int search(int *k, int n, int key)

{

for (int i = 0; i < n; i++) // просматриваем все элементы в цикле



{

if (k[i] == key) // если находим элемент со значением key,

return i; // возвращаем его индекс

}

return -1; // возвращаем -1 - элемент не найден



}

int main()

{

int k[8]; // описываем массив из 8 элементов



int point; // индекс элемента, равного указанному значению (3)

system("chcp 1251"); // переходим на страницу 1251 для поддержки русского языка

system("cls"); // очищаем окно консоли

// В цикле вводим элементы массива

for (int i = 0; i<8; i++)

{

printf("Введите k[%d]: ", i);



scanf("%d", &k[i]);

}

// Вызываем функцию поиска в массиве элемента, равного 3



point = search(k, 8, 3);

if (point == -1) // если функция вернула -1, такого элемента в массиве нет

printf("Элементов равных 3 в массиве нет!\n");

else // иначе выводим полученный индекс элемента

printf("Элемент с индексом %d равен 3", point);

getchar(); getchar();

return 0;

}


Teng bo’lish orqali qidiruv (ikkilik qidiruv) algoritmi

Faraz qilaylik, o‟sish tartibida tartiblangan sonlar massivi berilgan bo‟lsin. Ushbu usulning asosiy g‟oyasi shundan iboratki, tasodifiy qandaydir AM element olinadi va u X qidiruv argumenti bilan taqqoslanadi. Agar AM=X bo‟lsa, u holda qidiruv yakunlanadi; agar AM X bo‟lsa, u holda indekslari M dan katta bo‟lgan barcha elementlar kelgusi qidiruvdan chiqarib yuboriladi.


#include

using namespace std;

int main(){

int n;

cout<<"n=";



cin>>n;

int k[n];

for(int i=0;i

cin>>k[i];

int key, search;

cout<<"qidirilayotgan elementni kiriting=";

cin>>key; int low = 0;

int hi = n-1; int j=0; while (low <= hi){

int mid = (low + hi) / 2;j++; if (key == k[mid]){

search = mid;

cout<<"qidirilayotgan element "<

system("pause"); exit(0);

}

if (key < k[mid])



hi = mid - 1; else low = mid + 1;

}

search=-1;



cout<

system("pause");



n=6

1 2 3 4 5 6

Transpozitsiya usuli

Ushbu usulda topilgan element ro’yhatda bitta oldingi element bilan o’rin almashtiriladi. Agarda mazkur elementga ko„p murojaat qilinsa, bittadan oldinga surilib borib natijada ro’yhat boshiga kelib qoladi. Ushbu usulning afzalligi shundaki, tuzilmada ko„p murojaat qilinadigan elementlar ro’yhat boshiga bitta qadam bilan intiladi. Ushbu usulning qulayligi u nafaqat ro’yhatda, balki tartiblanmagan massivda ham samarali ishlaydi (sababi faqatgina ikkita yonma-yon turgan element o’rin almashtiriladi).




Download 26,65 Kb.

Do'stlaringiz bilan baham:
1   2   3




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish