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