heapsort

    1热度

    3回答

    我有三个随机访问迭代器parent,child1和child2,它们指向置换数组中的某些值。 (上下文:我正在实现heapsort;那些迭代器包含一个二进制子树)。 我需要确定迭代器,它具有最大的参考值(以保持堆的最大堆属性)。所以,如果*parent是最大的,返回parent,如果*child1是最大的,返回child1等 伪代码: #include <algorithm> auto ite

    2热度

    1回答

    CLRS book page no 157 3rd edition。我的问题不在于为什么BUILD_MAX_HEAP的复杂性是O(n)也不是证明。然而,他们用系统的方法得出结论,它在O(n log n)处不是渐近紧的。从逻辑上说,O(n log n)是正确的。 我卡住的一点是他们是如何得到直觉的,有更好的更紧的上限。如果这不是CLRS的解释。我们最终会知道么 ? 我关于直觉的问题的核心,我们必须让

    0热度

    1回答

    我已阅读了wiki页面和其他StackOverflow答案。希望有人能够解释这两种算法的作用。 谢谢

    0热度

    1回答

    我正在编写一个程序来执行堆排序。当我尝试执行removeMin函数和downheap时,似乎总是会得到不正确的输出。 例如,如果在此为了我输入10个整数: 3, 6, 8, 3, 89, 35, 7, 9, 1, 4 我希望 1, 3, 3, 4, 6, 7, 8, 9, 35, 89 ,但我得到: 1, 3, 3, 4, 6, 7, 8, 9, 35, 35 这里是我的代码堆代码:

    2热度

    2回答

    下面是堆排序的伪代码阵列上 HEAPSORT(A) BUILD-MAX-HEAP(A) for i = A.length downto 2 exchange A[1] with A[i] A.heapsize = A.heapsize - 1 MAX-HEAPIFY(A,1) 很明显,我认为BUILD-MAX-HEAP度为O(n)和MAX-HE

    -1热度

    2回答

    的我试图为堆下面的代码排序即给予ArrayIndexOutOfBoundsException例外: package com.Sorting; import java.util.Arrays; public class HeapSort { private static int arr[]; private static int l,r,max,hsize;

    1热度

    1回答

    我正在尝试编写一个heapsort算法,这是我的代码。但是,它不起作用。当我尝试运行宏时,它表示下标超出范围,它对应于if A(leftchild,1) > A(i,1) then位。它说i和leftchild都等于零,但情况并非如此,但我不知道要在哪里更改它。 Sub MakeMaxHeap(i As Long, heapsize As Long) Dim LeftChild As L

    -1热度

    1回答

    我正在实现HeapSort类,因此它使用addAll方法一次排列整个列表,并将堆中排序的元素重新存储到列表中。这是HeapSort类的驱动程序。为什么我无法创建新的HeapSort对象?我的意思是,当我尝试创建堆排序对象时,出现错误提示“HeapSort是原始类型,对泛型类型HeapSort的引用应进行参数化”。还有像构造函数HeapSort(Integer [])的错误是未定义的。“ 这些是什么

    1热度

    1回答

    要为升序排序和降序排序构建堆。 请解释是否有任何堆(最大或最小)可用于任何排序(升序或降序)。

    0热度

    1回答

    我想在向堆中插入一个新节点时,它可能传递的节点数量是logN,为什么它是(1 + logN),其中是1?