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) — գրաֆի շրջայց:
    • Դեյքստրայի ալգորիթմ — գտնում է ամենակարճ ճանապարհը ոչ բացասական քաշերով գրաֆում:
  • Ռեկուրսիա և դինամիկ ծրագրավորում:

    • Օգտագործվում են կրկնվող ենթաբարդ խնդիրների լուծման համար, օրինակ, Ֆիբոնաչչի թվերի հաշվարկը, պայուսակի խնդիր:
  • Գնահատական ալգորիթմներ:

    • Տեղական օպտիմալ որոշումներ ընդունում, օրինակ, Քրուսկալ ալգորիթմը նվազագույն ծածկի ծառի համար:

Օրինակ՝ Արագ դասավորություն 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);
}