В среднем каждая вставка должна пройти половину текущего отсортированного списка, выполняя одно сравнение за шаг. Список каждый раз увеличивается на единицу.
Таким образом, начиная со списка длины 1 и вставляя первый элемент, чтобы получить список длины 2, мы имеем в среднем обход 0,5 (0 или 1) места. Остальные 1,5 (0, 1 или 2 место), 2,5, 3,5,..., n-0,5 для списка длины n+1.
Это, по простой алгебре, 1 + 2 + 3 + ... + n - n * .5 = (n (n + 1) - n)/2 = n ^ 2 / 2 = O (n ^ 2)
Обратите внимание, что это средний случай. В худшем случае список должен быть полностью пройден (вы всегда вставляете следующий наименьший элемент в восходящий список). Тогда у вас есть 1 + 2 + ... n, что по-прежнему O (n ^ 2).
В лучшем случае вы найдете точку вставки в верхнем элементе с одним сравнением, поэтому у вас есть 1+1+1+ (n раз) = O(n).
person
Gene
schedule
07.11.2013
O(1)
времени, а обмены занимаютO(1)
времени. Вы можете обосновать для себя, является ли это действительной метрикой. С этого момента просто применяйте определение - person rliu   schedule 07.11.2013