输入一个长度为
第一行包含整数
第二行包含
共一行,包含
5 3
4 5 1 3 2
1 2 3
前置题目:0240
前置知识:语法
本题知识:数据结构-堆
// 建堆
for i := n / 2; i > 0; i-- {
down(i)
}
1 第 3 层
/ \
2 3 第 2 层
/ \ / \
4 5 6 7 第 1 层
/
8 第 0 层
建堆的时间复杂度为什么是 O(n) 的?
设 n 是总结点数,
总的时间是
化简
所以总的时间复杂度是小于 n 的,即是 O(n)