如何用Java在Heap中编写bubbleDown方法?

时间:2019-05-14 22:55:53

标签: java heap priority-queue bubble-sort heapsort

我知道在整个堆栈溢出中都会发布这样的几个问题,但是没有一个能真正回答我的问题。我正在编写一个辅助私有的bubbleDown方法,以帮助我对我的公共静态HeapSort方法进行排序。

我知道这个想法是将自身视为最大堆,其数据从0(而不是1)开始。

  • a实际上不是堆顺序。
  • 但是,如果您从最后一个节点开始反复“冒泡”每个非叶子节点,最终将拥有适当的堆。

我已经写了这个算法,但是我不确定这是否真的有效。

  override func viewDidLoad() {
        super.viewDidLoad()
        let image = UIImage(named: "bike")
        let imageView = UIImageView(image: image)
        imageView.backgroundColor = .blue //for debugging
        imageView.contentMode = .scaleAspectFit
        navigationItem.leftBarButtonItem = UIBarButtonItem(customView: imageView)
  }

现在,一切似乎都运行得更加流畅,只是当我有重复的值时,它们的顺序不正确。我在气泡方法中找不到此错误。

1 个答案:

答案 0 :(得分:0)

这就是我得到的

using System;
using System.Windows.Forms;
using micautLib;

private void button1_Click(object sender, EventArgs e)
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false); //error occurs here

    MathInputControl ctrl = new MathInputControl();

    ctrl.EnableExtendedButtons(true);
    ctrl.Show();
    ctrl.Close += () => Application.ExitThread();
    Application.Run();
}