2.3.13在最佳、平均和最坏情况下,快速排序的递归深度分别是多少?这决定了系统为了追踪递归调用所需的栈的大小。在最坏情况下保证递归深度为数组大小的对数级的方法请见练习2.3.20。
答:
令排序数组长度为n
1)最佳情况下,每次切分都能使左右子数组长度相同,递归深度为lgN。
2)平均情况下,递归深度为lnn。
令D(n)为长度为N数组平均情况下的递归深度。
令p为切分元素所在的数组索引,那么
3)最坏情况下,每次切分都能使左右子数组其中一个为空,那么递归的深度为N。
2.3.13在最佳、平均和最坏情况下,快速排序的递归深度分别是多少?这决定了系统为了追踪递归调用所需的栈的大小。在最坏情况下保证递归深度为数组大小的对数级的方法请见练习2.3.20。
答:
令排序数组长度为n
1)最佳情况下,每次切分都能使左右子数组长度相同,递归深度为lgN。
2)平均情况下,递归深度为lnn。
令D(n)为长度为N数组平均情况下的递归深度。
令p为切分元素所在的数组索引,那么
3)最坏情况下,每次切分都能使左右子数组其中一个为空,那么递归的深度为N。