首页 > 代码库 > Java学习资料-Java常用算法-堆排序

Java学习资料-Java常用算法-堆排序

/**

* 堆排序

* @param array

* @param length

*/

public void heapSort(int[] array, int length) {

// 调整为大根堆的形式

// 存储根堆的元素个数

int currentSize = length;

int start = (currentSize - 2) >>> 1;

while (start >= 0) {

siftDown(array, start, currentSize - 1);

start--;

}

int end = array.length - 1;

while (end > 0) {

swap(array, 0, end);

end--;

siftDown(array, 0, end);

}

}


Java学习资料-Java常用算法-堆排序