第6章 变治法

2019-04-16  本文已影响0人  饥人谷1904_陈俊锋

三种变治法的类型

1.实例化简--同样问题

2.改变表现--同样实例

3.问题化简--另一问题


预排序


总结一下各排序算法

平均比较和移动次数约为 (n^2)/4,比冒泡和简单选择排序的性能要好一些。


二叉查找树

在平均情况下,查找、插入和删除的效率为 O(log n)
最差情况下,退化成线性情况 O(n)

把一个集合变换称一棵二叉查找树是改变表现技术的一个实例


堆和堆排序

一棵完全二叉树,如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点 i/2(向下取整)。

堆排序

利用堆(假设为大顶堆)进行排序的方法。

基本思想:将待排序列构造成一个大顶堆,整个序列的最大值就是堆顶的根结点,将其与堆数组的末尾元素交换,此时末尾元素就是最大值,然后将剩余的n-1个序列重新构造成一个堆,这样就会得到n个元素中的次大值。重复执行直到得到有序序列。

复杂度分析:主要是消耗在初始建堆和重建堆时的反复筛选上。最好最坏平均时间复杂度均为 O(nlog n)

T(n)=2T(n/2)+logn

记录的比较和交换是跳跃式进行的所以式一种不稳定算法。

同一深度结点分布在树的同一层
同一高度结点可以分布在树的不同层


霍纳法则和二进制幂

霍纳法则

用一个两行的表,第一行包含了多项式的系数(如果存在等于0的系数也都包含进来),从最高的 an 到最低的 a0 。第二行中,除了第一个单元格用来存储 an ,其他单元格都将用来存储中间结果。做了这样的初始化之后,用第二行的最后一个单元格乘以x的值再加上第一行的下一个系数,来算出表格下一个单元格的值。

即,当x0 =3时 p(x)=2x4-x3-3x2+x-5 除以 x-3 为2x3+5x2+18x+55 和 160

二进制幂


问题化简

上一篇 下一篇

猜你喜欢

热点阅读