堆排序
堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。堆排序很适合在m个数中选择最大的k个数的问题。只需要进行k此调整就可以取出。
思路:
- 首先需要构成一个大顶堆。
- 将堆首元素出堆,将堆尾元素放在堆首,然后对剩下的m-1个数进行成堆。
Java实现:
|
|
快速排序
快速排序一般基于递归实现:
- 选定一个合适的值
|
|
黄小黄的幸福生活!
堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。堆排序很适合在m个数中选择最大的k个数的问题。只需要进行k此调整就可以取出。
思路:
Java实现:
|
|
快速排序一般基于递归实现:
|
|
微信支付
支付宝
比特币