Sobes.tech
Junior — Middle

Моъйӣ кардан ба алгоритмҳои классикии асосӣ ва хусусиятҳои онҳо?

sobes.tech AI

Ҷавоб аз AI

Муҳим классик алгоритмлар ва уларнинг хусусиятлари:

  • Тартиблаш:

    • Пуфур (Bubble Sort) — оддий, аммо самарасиз (O(n²)), ўрганиш учун мўлжалланган.
    • Ичкига қўшиш (Insertion Sort) — деярли тартибланган маълумотлар учун самарали.
    • Тез тартиблаш (Quick Sort) — ўртача тез (O(n log n)), аммо энг ёмон ҳолатда O(n²).
    • Қўшилиш тартиблаш (Merge Sort) — барқарор, кафолатланган O(n log n), қўшимча хотира талаб қилади.
  • Қидириш:

    • Чизиқли қидириш — оддий, аммо секин (O(n)).
    • Иккилик қидириш — тез (O(log n)) тартибланган массивлар учун.
  • Граф алгоритмлари:

    • Чуқурликда қидириш (DFS) ва енгликда қидириш (BFS) — графни ўтказиш.
    • Дейкстра алгоритми — неотрицателни вазнларга эга графда энг қисқа йўлни топиш.
  • Рекурсия ва динамик дастурлаш:

    • Қайталанадиган кичик муаммоларни ҳал қилиш учун, масалан, Fibonacci рақамларини ҳисоблаш, рюкзак муаммоси.
  • Гридий алгоритмлар:

    • Локал оптимал қарорлар қабул қилади, масалан, Kruskal алгоритми минимал ўрмон учун.

misol: C#да тез тартиблаш

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);
}