排序程序总结.

1.算法

循环不变式实际是这个循环的功能,或者数据结构保持不变的性质。循环不变式在第一个迭代前成立,在每一次迭代后仍然成立。

循环不变式选自《算法导论》

(1)快速排序

循环不变量:

数组A[k](p<=k<=r),p与r是数组边界。

则,1. p<=k<=i,则A[k]<=x。

2.  i+1<=k<=j-1,则A[k]>x。i,j是high端与low端的工作游标。

3. K=r,则A[k]=x。

算法效率循环不变式:

     中间数据结构一棵BST,根节点pivot,所有在左右子树的节点,遵守左子树节点<pivot,右子树节点>pivot。

     循环不变式的效度: 两个游标在边界中,而且左子树游标<右子树游标。(注意辨析)

    循环终止条件:  两个游标相等,或超出边界。

(2)堆排序

循环不变量:

最大堆建堆算法,调整A[i],结点i+1,i+2,...,n都是一个最大堆的根结点。

     *每一个结点i只在一个“队列”中,这个队列是结点i到结点i为顶点(根)的待排序最大堆的完全二叉树的一个叶结点。

保持最大堆的性质,根结点是最大值,用遵守性质的结点数量递增的方法。

算法效率方法,数据精确比较范围,每次堆结点调整只在一个队列中。

(3)归并排序

有序数组A[p..q]与A[q+1..r]合并并且代替数组A[p..r]。

循环不变量:

    部分数组A[p..k-1](p<=k<=r)按从小到大的顺序,包含L[l..n1](n1=q-p+1,等于A[p..q])和R[1..n2](n2=r-q,等于A[q+1..r])中的k-p个最小元素。L[l]和R[j]是各自数组未被复制回的最小元素。

算法效率方法:

数据分组的树形序。

2.程序性质

快速排序,双向多序,树型序。

堆排序,完全二叉树,每一个元素在从堆顶元素为首元素的一个队列中,数据确定比较范围。

3.数据组织技术与算法复杂度分析

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值