堆排序算法的C++实现O(N*logN)
最近在学《算法导论》一书,先前已经发布了利用了GoF设计模式中的装饰模式将堆排序算法做成了util,并利用《大话设计模式》一书中所述的装饰模式写的堆排序,去除了Interface/基类,代码看上去更优雅。本次发布的这一版是未用设计模式重构之前的Heap排序算法,客户端调用sort()或是sortReversely(),比重构后的更加清晰直观,更加面向过程化,但是没有做到堆存储与堆排序算法的分离,而且两种排序函数没法重载,名称不同,可能加大使用该排序算法时switch/case的代码量。将书中原有的递归max-heapify算法用非递归方式写了出来,heap_test.cpp中是对堆排序的使用说明。本util的编码风格和文件组织风格比较好(作者曾在实践中
用户评论
可以用,谢谢
可以用的 不错
还可以,代码不错,谢谢分享了
代码太烦。。。好像没那么复杂。。。所以没仔细看