09 2019 档案
摘要:堆排序 堆排序是建立在堆结构的基础上的,是堆的一个应用实例 由前面我们已经知道了,从一个毫无逻辑的初始序列到建堆完成,可以得到堆顶是整个序列中最大的元素.那么就很容想到如果每次都从堆顶取走最大元素,序列不就有序了吗. 总体思想是这样的没错,但是还有很多细节需要考量,比如取走堆顶之后堆顶放哪;谁来做新
阅读全文
摘要:二叉树的创建 二叉树遍历 AVL树(平衡二叉树) 显然,这样一个结构并不是堆,因为不满足堆的定义,它既不是大顶堆也不是小顶堆,这时候就需要我们对这个结构进行调整,让它满足堆的定义成为一个真正的堆. 调整的核心 自下而上的下滤 下面模拟一下调整堆的过程: 从原始数组的最后一个元素开始,也就是上述二叉树
阅读全文
摘要:【栈及其应用】 栈是一种“ 后进先出 ”线性序列结构,和数组这种同是线性序列的结构相比,栈的一端被“封”住,元素进入和出去都只允许从某一端。 STL 里的栈 栈的应用 1.逆序输出 — 进制转换 十进制转其他进制 如: 121~(10)~ = 1111000~(2)~ 12345 ~(10)~
阅读全文
摘要:【快速幂】 快速幂就是快速算出底数的n次幂,它的复杂度为log(n),相比朴素的O(n)有了极大的提高,故因此得名 蛮力算法 以求 2^n^ 为例,最直接的办法就是将n个2相乘,即: $$ 2 \times 2 \times2 \times2 \times2 \times.........{有n个2
阅读全文

浙公网安备 33010602011771号