摘要: 2.4.26无需交换的堆。因为sink()和swim()中都用到了初级函数exch(),所以所有元素都被加载并存储了一次。回避这种低效方式,用插入排序给出新的实现(请见练习2.1.25)。答:以小堆swim为例,如下图所示:1)元素1与4对比,再与4互换位置;2)元素1与3对比,再与3互换位置;3) 阅读全文
posted @ 2019-08-31 19:38 修电脑的龙生 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 2.4.25 计算数论。编写程序CubeSum.java,在不使用额外空间的条件下,按大小顺序打印所有a^3+b^3的结果,其中a和b为0至N之间的整数。也就是说,不要全部计算N^2个和然后排序,而是创建一个最小优先队列,初始状态为(0^3,0,0),(1^3,1,0),(2^3,2,0),..., 阅读全文
posted @ 2019-08-31 18:14 修电脑的龙生 阅读(274) 评论(0) 推荐(0) 编辑