Ваш архетипний - алгоритм розділення і перемоги , який ділить (і рекомбінує) роботу на лінійний час і повторюється за частинами. Сортування злиттям працює таким чином: проводять Про ( п ) час розщеплення вхід приблизно на дві рівні частини, рекурсивно роду кожен шматок, і провести Θ ( п ) час , комбінуючи дві половинки сортується.Θ(nlogn)O(n)Θ(n)
Інтуїтивно, продовжуючи ідею поділу і перемоги, кожен етап поділу займає загальний лінійний час, оскільки збільшення кількості шматочків, які потрібно розділити, точно відповідає зменшенню розміру шматочків, оскільки час, відведений діленням, лінійний. Загальний час роботи - це добуток загальної вартості етапу поділу, помножений на кількість етапів поділу. Оскільки розмір шматочків зменшується вдвічі, є етапи поділу , тож загальний час виконання - n ⋅ log ( n ) . (До мультиплікативної константи основа логарифму не має значення.)log2(n)n⋅log(n)
Якщо скласти це в рівняннях (), один із способів оцінити час роботи такого алгоритму - це виразити його рекурсивно: T ( n ) = 2 T ( n / 2 ) + Θ ( n ) . Зрозуміло, що цей алгоритм займає більше, ніж лінійний час, і ми можемо бачити, наскільки більше, поділяючи на n :
T ( n )T(n)T(n)=2T(n/2)+Θ(n)n
Колиnподвоюється,T(n)/nзбільшується на постійну величину:T(n)/nзбільшується логарифмічно, або іншими словами,T(n)=Θ(nlogn).
T(n)n=T(n/2)n/2+Θ(1)
nT(n)/nT(n)/nТ( n ) = Θ ( n журналn )
Це примірник більш загальної закономірності: головна теорема . Для будь-якого рекурсивного алгоритму , який ділить його введення розміру в протягом шматків розміру п / б і займає час п ( п ) для виконання поділу і рекомбінації, час роботи задовольняє умова Т ( п ) = а ⋅ Т ( п / б ) + f ( n ) . Це призводить до закритої форми, яка залежить від значень a і b та форминан / бf( n )Т( n ) = a ⋅ T( п / б ) + f( n )аб . Якщо a = b і f ( n ) = Θ ( n ) , головна теорема стверджує, що T ( n ) = Θ ( n log n ) .fa = bf( n ) = Θ ( n )Т( n ) = Θ ( n журналn )