解决Tn= 7Tn / 7+ n的递归

问题描述

我正在尝试解决#!/bin/bash declare -a alldisks alldisks=(/dev/disk[0-9]s*) echo alldisks is "$alldisks" echo The second item in alldisks is "${alldisks[1]}" for disk in "${alldisks[@]}" do printf "Loop $disk\n" done 的重复问题。 我知道使用主定理T(n) = 7T(n/7) + n,但是我想通过替代来解决

在第i级,我得到:O(nlog7n) 通过设置7^i T(n/7^i) + (n+7n+7^2n+ .... + 7^i n),以上内容变为:i = log7n

7^(log7n)*T(1) + (n + 7n + 7^2n ..... + 7^(log7n) n起,以上内容最终变为7^log7n = n 这样就解决n+ (n+7n+(7^2)n+ ....n*n)对我来说不是O(n^2)的问题,知道有什么问题吗?

解决方法

T(n)=7T(n/7)+n=7[7T(n/72)+n/7]+n=72T(n/72)+2n=...=7kT(n/7k)+kn
n/7k=c ⇒ k=O(logn)
⇒T(n)=O(nlogn)