|
int InSeqsearch(int realArray[], int N, int kind[2][1000],int m,int key, int *t) {
|
bet | 8/71 | Sana | 18.12.2023 | Hajmi | 5,63 Mb. | | #122750 |
Bog'liq Test gift and xml-fayllar.orgint InSeqsearch(int realArray[], int N, int kind[2][1000],int m,int key, int *t) {
int i=0, low = 0, hi = 0;
while ((i<=key)) { i++; (*t)++; } (*t)++;
if (i==0) low=0; else low=kind[1][i-1];
if (i==m) hi=N; else hi=kind[1][i]-1;
for (int j=low; j<=hi; j++) {
(*t)++; if( key==realArray[j] )
{ return j; }
}
return -1;
}
17.Qidiruv usullarining samaradorligi: ketma-ket va indeksli ketma-ket qidiruv usullari samaradorligini tahlil qiling.
Taqqoslashlar soni qanchalik kam bo’lsa, qidirish algoritmining samaradorligi shuncha yuqori bo’ladi.
Massivda ketma-ket qidirish samaradorligi quyidagicha:
C = 1 ÷ n, C = (n + 1)/2.
Ro’yxatda ketma-ket qidirish samaradorligi ham xuddi shunday. Ma’lumotlarni massiv va ro’yxat ko’rinishlarda tashkil etishning o’z afzalligi va kamchiliklari mavjud, bog’langan ro’yxatlarda qidirishdagi taqqoslashlar soni ham massivdagi qidirish bilan bir xil bo’ladi.
Qidirish maqsadi quyidagi protseduralarning bajarilishini ta’minlaydi:
1) Topilgan yozuvni o’qish.
2) Yozuvni chiqarish jarayonida uni jadvalga qo’yish.
3) Topilgan yozuvni o’chirish.
Birinchi protsedura qolganlari bilan bir vaqtda bajariladi. Ikkinchi va uchinchi protseduralar ro’yxatli tuzilmalar uchun ancha samaraliroq (massivda elementlarni siljitish kerak).
Agar massivda elementlarni siljitishlar soni k ga teng deb olsak, u holda k=(n + 1)/2.
|
| |