Algs4-2.4.13去掉sink()中的检查j<N

本文探讨了在实现堆排序时如何优化sink()函数中的边界条件检查,通过引入一个无穷小哨兵值来替代传统的边界检查,从而简化代码并提高效率。这种方法在delMax操作中特别有效,避免了不必要的比较。

2.4.13想办法在sink()中避免检查j<N。
答:在delMax中,pq[N+1]=null变更成pq[N+1]=无穷小哨兵值,
j<N时,j<N && less(j,j+1) =真&&less(j,j+1)=less(j,j+1)
j=N时,j<N && less(j,j+1)=假&&假=假=less(j,j+1)   (不可能小于哨兵值,所以less(j,j+1)返回假)
所以这个方法以去掉sink中的j<N的检查。

转载于:https://www.cnblogs.com/longjin2018/p/9868629.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值