七种排序算法Java版(6)

2021-01-20 23:04

七种排序算法Java版,最常用的7种

*

* @param array

*/

public static void heapSort(int[] array) {

for (int i = 1; i < array.length; i++) {

makeHeap(array, i);

}

for (int i = array.length - 1; i > 0; i--) {

int temp = array[i];

array[i] = array[0];

array[0] = temp; rebuildHeap(array, i);

}

}

/**

* 堆排序辅助方法---创建堆

* * @param array

* @param k

*/

private static void makeHeap(int[] array, int k) {

int current = k;

while (current > 0 && array[current] > array[(current - 1) / 2]) {

int temp = array[current];

array[current] = array[(current - 1) / 2];

array[(current - 1) / 2] = temp;

current = (current - 1) / 2;

}

}

/**

* 堆排序辅助方法---堆的根元素已删除,末尾元素已移到根位置,开始重建 *

* @param array

* @param size

*/

private static void rebuildHeap(int[] array, int size) { int currentIndex = 0;

int right = currentIndex * 2 + 2;

int left = currentIndex * 2 + 1;

int maxIndex = currentIndex;

boolean isHeap = false;

while (!isHeap) {

if (left < size && array[currentIndex] < array[left]) { maxIndex = left;

}

if (right < size && array[maxIndex] < array[right]) {


七种排序算法Java版(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:磁盘坏道工具PC3000使用方法详细图解

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: