1 > Statik ma'lumotlar tuzilmalarini o'rganish


Download 46.28 Kb.
bet2/2
Sana11.01.2023
Hajmi46.28 Kb.
#1088471
1   2
Bog'liq
4444ddsfsgsdfsdfg

    Bu sahifa navigatsiya:
  • Izoh

Ishni bajarishga namuna


Berilgan topshiriq variantlariga o‘xshash bo‘lgan bitta masalani bajarib ko‘ramiz. Quyidagicha masala qo‘yilgan: Berilgan familiyalardan imlo qoidasiga mos ravishda ismlar hosil qiling.



3 - - - >
Indekslangan ketma-ket qidirish
Yangilangan vaqti: 24-09-2020
Ushbu qidiruv usulida, avvalo, indeksni olishda ba'zi bir maxsus guruh yoki kerakli yozuvlarni bo'linishni o'z ichiga olgan indeks fayli yaratiladi, so'ngra qisman indeksatsiya kamroq vaqt talab qiladi u belgilangan guruhda joylashgan.
Izoh: Agar foydalanuvchi ma'lum yozuvlar uchun so'rov yuborgan bo'lsa, u birinchi bo'lib ushbu yozuv yozilgan joyda indeks guruhini topadi.
Indeksli ketma-ket qidiruvning xususiyatlari:

  • indekslangan ketma-ket qidirishda qatorga qo'shimcha ravishda saralangan indeks ajratiladi.

  • Indeksdagi har bir element massivdagi elementlar blokiga yoki boshqa kengaytirilgan indeksga ishora qiladi.

  • Indeks 1-qatordan keyin qidiriladi va massivda qidiruvga rahbarlik qiladi.

Izoh: indekslangan ketma-ket qidirish indeks indeksini yaratish kabi indeksatsiyani bir necha marta amalga oshiradi. 
"Indeksli ketma-ket izlash" diagrammasi bo'yicha tushuntirish:

Code:
C
filter_none
edit
play_arrow
brightness_4

// C program for Indexed Sequential Search
#include
#include
void indexedSequentialSearch(int arr[], int n, int k)
{
int elements[20], indices[20], temp, i, set = 0;
int j = 0, ind = 0, start, end;
for (i = 0; i < n; i += 3) {
// Storing element
elements[ind] = arr[i];
// Storing the index
indices[ind] = i;
ind++;
}
if (k < elements[0]) {
printf("Not found");
exit(0);
}
else {
for (i = 1; i <= ind; i++)
if (k <= elements[i]) {
start = indices[i - 1];
end = indices[i];
set = 1;
break;
}
}
if (set == 0) {
start = indices[i - 1];
end = n;
}
for (i = start; i <= end; i++) {
if (k == arr[i]) {
j = 1;
break;
}
}
if (j == 1)
printf("Found at index %d", i);
else
printf("Not found");
}
// Driver code
void main()
{
int arr[] = { 6, 7, 8, 9, 10 };
int n = sizeof(arr) / sizeof(arr[0]);
// Element to search
int k = 8;
indexedSequentialSearch(arr, n, k);

Download 46.28 Kb.

Do'stlaringiz bilan baham:
1   2




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