Sobes.tech
Junior — Middle

Asosiy klassik algoritmlar va ularning xususiyatlarini ayta olasizmi?

sobes.tech AI

AIdan javob

Asosiy klassik algoritmlar va ularning xususiyatlari:

  • Sortlash:

    • Pufakcha sort (Bubble Sort) — oddiy, lekin samarali emas (O(n²)), o‘rganish uchun mos.
    • Insertsiya sort (Insertion Sort) — deyarli tartiblangan ma’lumotlar uchun samarali.
    • Tez sort (Quick Sort) — o‘rtacha tez (O(n log n)), lekin eng yomon holatda O(n²).
    • Birlashtirish sort (Merge Sort) — barqaror, O(n log n) garantiyali, qo‘shimcha xotira talab qiladi.
  • Qidiruv:

    • Chiziqli qidiruv — oddiy, lekin sekin (O(n)).
    • Ikki tomonli qidiruv (Binary Search) — tartiblangan massivlar uchun tez (O(log n)).
  • Graf algoritmlari:

    • Chuqur avlod qidiruvi (DFS) va Kenglik avlod qidiruvi (BFS) — graf bo‘ylab yurish.
    • Dijkstra algoritmi — musbat og‘irliklarga ega grafda eng qisqa yo‘lni topish.
  • Rekursiya va dinamik dasturlash:

    • Takrorlanuvchi kichik masalalarni hal qilish uchun, masalan, Fibonacci sonlarini hisoblash, sumkaga muammo.
  • G‘ayratli algoritmlar:

    • Mahalliy eng yaxshi qarorlar qabul qiladi, masalan, Kruskal algoritmi minimal o‘rmon uchun.

Misol: C# da Tez sort

void QuickSort(int[] arr, int left, int right) {
    if (left >= right) return;
    int pivot = arr[(left + right) / 2];
    int i = left, j = right;
    while (i <= j) {
        while (arr[i] < pivot) i++;
        while (arr[j] > pivot) j--;
        if (i <= j) {
            int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
            i++; j--;
        }
    }
    QuickSort(arr, left, j);
    QuickSort(arr, i, right);
}