【发布时间】:2014-01-03 04:23:56
【问题描述】:
我正在努力更好地理解归约,我目前正在研究“中位数的中位数”和快速排序这两种算法。
我知道这两种算法都使用相似(实际上相同)的分区子例程来帮助解决它们的问题,这最终使它们非常相似。
Select(A[1...n],k): // Pseudocode for median of medians
m = [n/5]
for i from 1 to m:
B[i] = Select(A[5i-4..5i],3)
mom = Select(B[1..m],m/2)
r = partition(A[1..n],mom) // THIS IS THE SUBROUTINE
if k < r:
return Select(A[1..r-1],k)
else if k > r:
return Select(A[r+1..n],k-r)
else
return mom
那么对于这两种算法,“减少”一词是否有意义?以下任何一项有意义吗?
Medians/Quicksort 的中位数可以简化为一个分区子程序
中位数的中位数减少到快速排序
快速排序减少到中位数的中位数
【问题讨论】:
标签: algorithm quicksort reduction median-of-medians