min-heap

    0热度

    1回答

    我有最小堆的Dijkstra的实现,我试图改变最小堆到最大堆找到最大路径,但我不能,输出是错误的 所以,请你能帮我改变这个实现到最大堆? 非常感谢 public class DikjstraAlgorithm { public static void main(String[] args) { Graph graph = new Graph(9); for (int i =

    -4热度

    1回答

    你好,我想知道这些x是否在最小堆的正确位置?我对么?

    4热度

    2回答

    功能1 void min_heapify(int arr[],int n, int i){ int j, temp; temp = arr[i]; j = 2 * i; while (j <= n) { if (j < n && arr[j+1] < arr[j]) j = j + 1; if (temp <

    -1热度

    1回答

    我是堆和PQ概念的新手。所以我试图使用PQ使用最小堆实现堆栈。 我想实现以下方法: 弹出 弹出 的isEmpty 顶部 大小 下面是代码: import java.util.*; import java.lang.System; public class StackUsingMinPriorityQueue{ static int a[] = {3,7,2,11,9,4};

    1热度

    1回答

    如何在prolog中获取谓词以返回值? 我需要找到一个树的节点,并检查它是否是最小堆。 我猜它是这样的: - getnode(tree(_, node, _), node). 我到目前为止的代码是这样 minheap(tree(L, Node, empty)) :- getnode(L, Val), Node =< Val, minheap(L). minhea

    2热度

    1回答

    考虑以下示例。我将随机数添加到最小堆中,同时我将相同数字以相同顺序添加到最大堆中。所以最后这两堆将有相同的数字,其中一个是最小堆,另一个是最大堆。 现在,这里的问题: 如果我决定从最大堆取出的最大元素,将从最大堆总是在最小堆的底部是最大的元素?如果不是,那么另一个问题是,如果我想从最小堆中删除最大元素并将其与最小堆的最后一个元素进行交换,删除最后一个元素,我是否需要运行必须比较该开关元素的操作与他

    0热度

    1回答

    下面是我的程序,它使用基于0的数组和基于标准逻辑的书来创建min-heap。我正在使用2*i+1左侧的孩子和2*i+2正确的孩子,因为它是一个基于零的数组,我仍然得到了错误的输出。我错过了什么? #include <iostream> #include <vector> #include <algorithm> using std::vector; using std::cin; us

    2热度

    1回答

    我试图保留大量元组集合的顶部k个元素的列表。由于将它保存在内存中是不可能的,因此我想使用固定大小的列表来仅保留最高k值(使用键)。我试图使用min堆,但python的堆非常糟糕,因为它允许插入非唯一键。这是一个巨大的问题。所以我想我可以使用排序列表/代词(带有唯一键的元组)。使用草图函数我检索子字符串在整个文本中出现的计数(O(1)time))。我开始认为我在循环或弹出窗口和赋值方面做了一些错误,

    3热度

    2回答

    我试图使用heapq模块(https://docs.python.org/3/library/heapq.html)中的Python(2.0)内置最小堆数据结构来构建最大堆。要做到这一点,我只需使用我需要的数字的负数来推入我的堆。 使用这个(最大堆版本): import heapq h=[] for i in xrange(10): heapq.heappush(h,-i)

    0热度

    1回答

    我想实现一个优先级队列,它将按照其大小顺序排列HashSets(即最小的HashSets将具有最高的优先级)。 我该如何在Java中实现它? 以下是我尝试按优先级编号(最高优先级)成功订购HashSets的次数。 我的主要方法: System.out.print("Enter size of priority queue: "); int inputSize = scanner.ne