Mazkur ko‟rinishdagi qidiruv agar ma‟lumotlar tartibsiz yoki ular


Download 189.54 Kb.
Pdf ko'rish
Sana04.12.2020
Hajmi189.54 Kb.

Mazkur ko‟rinishdagi qidiruv agar ma‟lumotlar tartibsiz yoki ular 

tuzilishi noaniq bo‟lganda qo‟llaniladi. Bunda ma‟lumotlar 

butun jadval bo‟yicha operativ xotirada kichik adresdan boshlab, 

to katta adresgacha ketma-ket qarab chiqiladi.  

Massivda ketma-

ket qidiruv (search o‟zgaruvchi topilgan 

element tartib raqamini saqlaydi).  

Ketma-


ket qidiruv algoritmi C++ tilida quyidagicha bo‟ladi:  

 

int qidiruv(int key){  



for (int i=0;i

if (k[i]==key) { search = i;return search;}  

search = -1;  

return search;  

}  


 

Massivda ketma-ket qidiruv algoritmi samaradorligini bajarilgan 

taqqoslashlar soni M bilan aniqlash mumkin. Mmin = 1, Mmax = 

n

. Agar ma‟lumotlar massiv yacheykasida bir xil ehtimollik bilan 



taqsimlangan bo‟lsa, u holda Mo„rt “taqribaaan”(n + 1)/2 

bo‟ladi. 



Agar kerakli element jadvalda yo‟q bo‟lib, uni jadvalga qo‟shish 

lozim bo‟lsa, u holda yuqorida keltirilgan algoritmdagi oxirgi 

ikkita operator quyidagicha almashtiriladi. 

n=n+1; 


k[n-1]:=key; 

r[n-1]:=rec; 

search:=n-1; 

return search; 

Chizi

qli bir bog‟lamli ro‟yhatdan key kalitga mos elementni 



ketma-ket qidiruv usuli yordamida izlab topish dasturi. 

Node *q=NULL; 

Node *p=lst; 

while (p !=NULL){ 

if (p->k == key){ 

search = p; 

return search; 

q = p; 



p = p->nxt; 

Node *s=new Node;; 



s->k=key; 

s->r=rec;  

s->nxt= NULL;  

if (q == NULL){ s->nxt=lst; lst = s; }  

else q->nxt = s;  

search= s;  

return search; 

ы 

Ro‟yhatli tuzilmaning afzalligi shundan iboratki, ro‟yhatga 



elementni qo‟shish yoki o‟chirish tez amalga oshadi, bunda 

qo‟shish yoki o‟chirish element soniga bog‟liq bo‟lmaydi, 

massivda esa elementni qo‟shish yoki o‟chirish o‟rta hisobda 

barcha elementlarning yarmini siljitishni talab qiladi. 

Ro‟yhatda 

qidiruvning samaradorligi taxminan massivniki bilan bir xil 

bo‟ladi. 


Massiv - bu bitta nom ostida birlashtirilgan bir xil turdagi 

hujayralar guruhi sifatida taqdim etilgan ma'lumotlar tuzilishi. 

Massivlar bir xil turdagi katta hajmdagi ma'lumotlarni qayta 

ishlash uchun ishlatiladi. Massivning ismi - ko'rsatgich, sizga 

qanday ko'rsatgichlar borligini birozdan keyin aytib beraman. 

Massiv ma'lumotlarining bitta katagi massiv elementi deyiladi. 

Massiv elementlari har qanday turdagi ma'lumotlar bo'lishi 

mumkin. Massivlar bir yoki bir nechta o'lchovlarga ega bo'lishi 

mumkin 

O'lchovlar soniga qarab massivlar n o'lchovli massivgacha bir 



o'lchovli, ikki o'lchovli, uch o'lchovli va boshqalarga bo'linadi.  

int a [16]; 

bu erda, int - ma'lumotlarning butun turi; 

 

        a - bir o'lchovli massivning nomi



16 - bir o'lchovli massivning kattaligi, 16 ta katak. 

Har doim massiv nomidan keyin to'rtburchak qavslar mavjud 

bo'lib, ularda bir o'lchovli massivning kattaligi o'rnatiladi, 

shuning uchun massiv boshqa barcha o'zgaruvchilardan farq 

qiladi. 


int mas[10], a[16]; 

 

Ikki o'lchovli massa va a mos ravishda 10 va 16 o'lchamlari bilan 



e'lon qilingan. Bundan tashqari, ushbu deklaratsiya usulida 

barcha massivlar bir xil ma'lumotlar turiga ega bo'ladi, bizning 

holatlarimizda - int. 

int a[16] = { 5, -12, -12, 9, 10, 0, -9, -12, -1, 23, 65, 64, 11, 43, 39, 

-15 }; 

Bir o'lchovli massivni inisializatsiya qilish teng belgidan keyin 



jingalak qavslarda bajariladi, massivning har bir elementi 

oldingisidan vergul bilan ajratiladi. 

int a[]={5,-12,-12,9,10,0,-9,-12,-1,23,65,64,11,43,39,-15}; 

Bunday holda, kompilyator bir o'lchovli massivning o'zi hajmini 

aniqlaydi. Massivning kattaligi faqat uni ishga tushirish paytida 

o'tkazib yuborilishi mumkin; massivning odatdagi deklaratsiyasi 

bilan massivning kattaligi ko'rsatilishi kerak. Keling, bir o'lchovli 

massivni qayta ishlash uchun oddiy dastur ishlab chiqamiz. 

 

#include "stdafx.h" 



#include  

using namespace std;  

  

int main(int argc, char* argv[]) 



    int array1[10]; 

// объявляем целочисленный массив 

    cout << "Enter elementi massiva: " << endl; 

    int sum = 0; 

    for ( int counter = 0; counter < 10; counter++ ) 

// цикл для 

считывания чисел 

        cin >> array1[counter];  

// считываем вводимые с 

клавиатуры числа 

    cout << "array1 = {"; 

    for ( int counter = 0; counter < 10; counter++ ) 

// цикл для 

вывода элементов массива 

        cout << array1[counter] << " ";  

// выводим элементы 

массива на стандартное устройство вывода 

    for ( int counter = 0; counter < 10; counter++ ) 

// цикл для 

суммирования чисел массива 

        sum += array1[counter]; 

// суммируем элементы массива 


    cout << "}\nsum = " << sum << endl; 

    system("pause"); 

    return 0; 

Enter elementi massiva: 









array1 = {0 1 2 3 4 5 6 7 8 9 } 

sum = 45 

Для продолжения нажмите любую клавишу . . . 



 

 

Download 189.54 Kb.

Do'stlaringiz bilan baham:




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