Junior — Middle
Vai jūs varētu uzskaitīt galvenos klasiskos algoritmus un to īpašības?
sobes.tech AI
Atbilde no AI
Galvenie klasiskie algoritmi un to īpašības:
-
Kārtošana:
- Burbuļa kārtošana (Bubble Sort) — vienkārša, bet neefektīva (O(n²)), piemērota mācībām.
- Ievietošanas kārtošana (Insertion Sort) — efektīva gandrīz kārtotos datos.
- Ātrā kārtošana (Quick Sort) — vidēji ātra (O(n log n)), bet sliktākajā gadījumā O(n²).
- Apvienošanas kārtošana (Merge Sort) — stabila, garantēta O(n log n), prasa papildu atmiņu.
-
Meklēšana:
- Līnijas meklēšana — vienkārša, bet lēna (O(n)).
- Divkāršā meklēšana — ātra (O(log n)) kārtotos masīvos.
-
Grafu algoritmi:
- Dziļuma pirmkoda meklēšana (DFS) un platuma pirmkoda meklēšana (BFS) — grafu apmeklējums.
- Dijkstra algoritms — meklē visīsāko ceļu grafā ar pozitīviem svariem.
-
Rekursija un dinamiskā programmēšana:
- Izmanto, lai risinātu problēmas ar pārklājošiem apakšproblemiem, piemēram, Fibonacci skaitļu aprēķinu, muguras soma problēmu.
-
Greedy algoritmi:
- Pieņem vietējo optimālo lēmumu, piemēram, Kruskala algoritms minimālajam pārklājošajam kokam.
Piemērs: Ātrā kārtošana 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);
}