日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

堆排序:

發(fā)布時間:2025/7/14 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 堆排序: 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

/**
*
* 堆排序:
*
*/
public class HeapSort {

public void sort(int[] data) {
MaxHeap h = new MaxHeap();
h.init(data);
for (int i = 0; i < data.length; i++)
h.remove();
System.arraycopy(h.queue, 1, data, 0, data.length);
}

private static class MaxHeap {
void init(int[] data) {
this.queue = new int[data.length + 1];
for (int i = 0; i < data.length; i++) {
queue[++size] = data[i];
fixUp(size);
}
}

private int size = 0;

private int[] queue;

public int get() {
return queue[1];
}

public void remove() {
swap(queue, 1, size--);
fixDown(1);
}

// fixdown
private void fixDown(int k) {
int j;
while ((j = k << 1) <= size) {
if (j < size && queue[j] < queue[j + 1])
j++;
if (queue[k] > queue[j]) // 不用交換
break;
swap(queue, j, k);
k = j;
}
}

private void fixUp(int k) {
while (k > 1) {
int j = k >> 1;
if (queue[j] > queue[k])
break;
swap(queue, j, k);
k = j;
}
}

private void swap(int[] data, int i, int j) {
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}

轉(zhuǎn)載于:https://www.cnblogs.com/huangfengceo99/p/3473580.html

總結(jié)

以上是生活随笔為你收集整理的堆排序:的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。