堆排序满足条件(不稳定的排序,o(nlog2^n)):
堆是满足下列性质的数列{r1,r2,r3,r4,r5….rn}:
小项堆 ri < r2i / ri < r2i + 1
大项堆 ri > r2i / ri > r2i + 1
堆排序的思想(大项堆):先建立大项堆,选择关键字最大的序列,与序列中最后一个记录交换,然后再将最后一个元素剪掉,调整为不算最后一个元素的大项堆,再选择前n-1个关键字最大的序列,与序列的倒数第二个元素交换,再将倒数第二个元素剪掉。。。。。依次进行下去。堆排序涉及的问题:
- 如何从无序列表建立初始堆
1.建立初始堆:
<1>将任意一个无序序列建立为一棵完全二叉树
2.代码实现(java)