int x = a[p]; int i = p - 1; int j = r + 1; while (true) { do { j--; } while (a[j] > x); do { i++; } while (a[i] < x); if (i < j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } else { return j; } } } } Natija gif:
Qidirish (Searching) metodlari:
Linear Search (Chiziqli qidirish):
Massivni boshidan boshlab har bir elementni tekshiradi.
Qidirilayotgan elementni topganda to‘xtaydi.
Binary Search (Ikki-radiksli qidirish):
Massivni o‘rtasidan boshlab qidirish amalga oshiradi.
Qidirilayotgan elementni o‘rtadagi element bilan solishtiradi va qidirilayotgan elementni joylashuvini aniqlaydi. Massiv o‘rtasida qisqa qismini qayta qidiradi, va bu jarayonni takrorlaydi.
Hashing (Hashlash):Elementlarni bir qanday unikal kalit (hash) orqali joylashtiradi.
Hash funksiyasi orqali qidirish tez va samarali bo‘ladi.
2.3-§. Massivlarga qiymat qo‘shish va olib tashlash texnikalari. Massivlarga qiymat qo‘shish va olib tashlash (array manipulation) texnikalari, dasturlashda juda muhim va umumiy jarayonlardan biri hisoblanadi. Bu texnikalar, ma'lum bir ma'lumot to‘plamini (massivni) tuzish, boshqarish va ma'lumotlar bilan ishlashni osonlashtirish uchun ishlatiladi. Quyidagi ba'zi umumiy massiv operatsiyalari va texnikalari bor:
Massivga qiymat qo‘shish (Array Insertion):
Oxiriga qiymat qo‘shish: Misol:
array[array.Length - 1] = value;
Boshiga Qiymat Qo‘shish:
csharp
Copy code
for (int i = array.Length - 1; i > 0; i--) {
array[i] = array[i - 1];
}
array[0] = value;