Back to questions
Andersen
Junior — Middle
106
Опишите пример алгоритма и оцените его временную сложность.
Companies where asked
Answer from AI
sobes.tech AI
Рассмотрим пример алгоритма сортировки массива чисел методом пузырька (Bubble Sort):
Идея: проходить по массиву, сравнивать соседние элементы и менять их местами, если они идут в неправильном порядке. Повторять проходы, пока массив не будет отсортирован.
Пример на Dart (Flutter):
void bubbleSort(List<int> arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
Временная сложность этого алгоритма — O(n²), где n — количество элементов в массиве. Это связано с тем, что в худшем случае алгоритм делает примерно n проходов по массиву, и на каждом проходе сравнивает элементы почти n раз.
Такой алгоритм прост, но неэффективен для больших данных. Для более эффективной сортировки используют алгоритмы с лучшей сложностью, например, быструю сортировку (QuickSort) или сортировку слиянием (MergeSort).