《算法导论》笔记3-9

中位数和顺序统计

期望为线性时间的选择算法

这里的随机划分使用了快速排序中的随机版。

1
2
3
4
5
6
7
8
9
10
11
randomized_select(A, low, high, index)
if low == high
return A[low]
mid = randomized_partition(A, low, high)
leftRange = mid - low + 1
if index == leftRange
return A[mid]
elif index < leftRange
return randomized_select(A, low, mid - 1, index)
else
return randomized_select(A, mid + 1, high, index - leftRange)
Author

Zoctan

Posted on

2018-04-08

Updated on

2023-03-14

Licensed under