Підраховуємо кількість елементів читання та запису масиву. Для сортування бульбашок вам потрібно доступу (початкове записування до кінця, потім, в гіршому випадку, два читання і два записи, щоб зробити свопів). Для здійснення двійкового пошуку нам потрібно ( для двійкового пошуку, тоді, в гіршому випадку, для зміщення елементів масиву праворуч, потім 1 для запису елемента масиву в її правильне положення).n 2 log n + 2 n + 1 2 log n 2 n1 + 4 нн2 колодиn + 2 n + 12 колодин2 н
Отже, обидва способи мають однакову складність для реалізації масивів, але метод двійкового пошуку вимагає меншої кількості доступів до масиву в довгостроковій перспективі ... асимптотично, вдвічі менше. Є, природно, інші фактори.
Насправді, ви можете використовувати кращі реалізації та рахувати лише фактичний доступ до масиву (не доступ до елементу, який потрібно вставити). Ви можете зробити для сортування бульбашок та для двійкового пошуку ... так що якщо реєстрація / кеш-доступ дешевий, а доступ до масиву дорогий, пошук з кінця та зміщення по шляху (розумніший міхур сортування для вставки) може бути кращим, хоча не асимптотично.log n + 2 n + 12 n + 1журналn + 2 n + 1
Кращим рішенням може бути використання іншої структури даних. Масиви дають вам доступ до O (1) (випадковий доступ), але вставки та видалення можуть коштувати. Хеш-таблиця може мати вставки та видалення O (1), доступ коштуватиме. Інші варіанти включають BST та купи тощо. Можливо, варто врахувати потреби у застосуванні для додавання, видалення та доступу та вибрати більш спеціалізовану структуру.
Зауважте також, що якщо ви хочете додати елементів до відсортованого масиву з елементів, гарною ідеєю може бути ефективне сортування елементів, а потім об'єднати два масиви; Крім того, відсортовані масиви можуть бути побудовані ефективно, наприклад, за допомогою купи (сортування купи).н ммнм