我在家庭作业上有以下问题,我不知道如何处理它
假设我们有以下排序算法:
要对大小为N(A [1 ... N])的数组进行排序,算法将执行以下操作:
- 递归地,对第一个N-1个元素A [1 ... N-1]
进行排序- 使用二进制搜索找到A [N]的正确位置,将其添加到排序列表中。找到正确的位置后,需要将值移动到A [N]。
醇>写出此算法的详细递推方程式(不要省略任何术语)。
答案 0 :(得分:2)
其中C
是常量。
让我们看看n > 1
案例中每个术语的来源:
递归地,对第一个N-1个元素A [1 ... N-1]
进行排序
使用二进制搜索找到A [N]的正确位置以将其添加到 排序列表
找到正确的位置后,需要将值移动到A [N]。
答案 1 :(得分:1)
将这些碎片放在一起,我们得到T(n)< = T(n-1)+ log(n-1)+ n - 1.最后,由于你没有指定基本情况,我假设算法只对空列表做任何事情(因此对其进行简单排序)然后得到T(0)= 0.