MCPcopy Create free account
hub / github.com/Flamewaker/JavaPersonalSummary / heapSort

Method heapSort

Code/leetcode/Sort/Sort.java:228–237  ·  view source on GitHub ↗

堆排序 - 堆排序的思想借助于二叉堆中的最大堆得以实现。首先,将待排序数列抽象为二叉树,并构造出最大堆;然后,依次将最大元素(即根节点元素)与待排序数列的最后一个元素交换(即二叉树最深层最右边的叶子结点元素); 每次遍历,刷新最后一个元素的位置(自减1),直至其与首元素相交,即完成排序。 堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了 1. 构造初始堆。将给定无序序列构造成一个大顶堆(一般升序采用大顶堆,

(int[] nums)

Source from the content-addressed store, hash-verified

source not stored for this graph (policy: none)

Callers 1

sortArrayMethod · 0.95

Calls 2

adjustMethod · 0.95
swapMethod · 0.95

Tested by

no test coverage detected