Мой вопрос касается теории и практики.
Скажем, например, что я хочу отсортировать список чисел. Сорт Mergesort имеет сложность O (n * logn), в то время как сортировка пузырьков имеет сложность O (n ^ 2). Это означает, что слияние происходит быстрее. Но сложность не учитывает всего происходящего на компьютере. Под этим я подразумеваю то, что сортировка слиянием, например, является алгоритмом «разделяй и властвуй», и ему нужно больше места, чем пузырьковой сортировке. Так разве не возможно, что создание этого дополнительного пространства и использование ресурсов (время для передачи данных, заполнения инструкций кода и т. Д. c) займет больше времени, чем пузырьковая сортировка, которая не использует никакого дополнительного пространства? Разве нельзя было бы более эффективно использовать алгоритм с меньшей («большей») сложностью, чем другой, для определенной длины входных данных (возможно, небольших)?