heapsort

    -1热度

    2回答

    我已经编写了堆排序算法,但我很难决定什么应该被视为比较。我认为下面会朝着比较,但我得到的结果有利于似乎离我(受到了很多,也许?)这里的代码 public class heapsort{ static int counter = 0; public static void main(String[] args) { //int[] a1={1, 16, 2,

    -6热度

    2回答

    谁能向我解释下一个代码序列的工作原理。 PriorityQueue<Integer> pQueue = new PriorityQueue<Integer>(); for (int w : x) { pQueue.add(w); } for (int k = 0; k < x.length; k++) { x[k] = pQueue.poll(); } // Pr

    2热度

    1回答

    当我自学自己的斐波那契堆时,我有这个问题,现在我知道这是一个高效的数据结构,用于在堆中降低堆中元素的优先级时实现优先级队列,延迟时间复杂度为O(1)。 但是,从CLRS教科书中,优先级降低操作假定节点保持目标元素是预知的。 我很好奇我怎么才能有效地获得所需的节点,如果不是最小节点。 一个天真的实现和分析会产生O(n)最差情况下的时间复杂度,以在斐波那契堆上执行查找操作,与其他操作相比效率较低。 所

    0热度

    1回答

    我做了我自己的minHeap模板,似乎排序整数完美罚款,但是当我尝试排序我自己的类,我称之为道路它正确地排序它的一半左右。 .. Road类定义如下:它有两个整数,分别称为cityA和cityB,以及一个称为长度的double。 当比较两条道路A和B时,我们说A小于B是A的长度成员小于B的长度成员或者如果它们的长度相等并且A包含所有四个城市(城市A和城市A中最小的整数)城市B在A和城市A和城市B在

    1热度

    1回答

    这是我的程序,它与三个函数一起工作来执行heapsort。 我不能弄清楚问题在哪里。 如果有人帮忙,我会很高兴。 这两个函数计算左和右索引 int left(int i) {return(2*i+1);} int right(int i) {return(2*i+2);} 最大这里是最大的数组索引。 一个是数组 我是该指数 void maxheapify(int i,int *a,in

    2热度

    4回答

    我正在尝试实现Cormen中提供的堆排序算法。我的代码如下: #include<stdio.h> #include<conio.h> void max_heapify(int *,int); void build_max_heap(int *,int); void heapsort(int *,int); void swap(int,int);

    1热度

    3回答

    我正在创建一个创建4个客户端向量的程序,然后堆使用比较器类对它们进行排序(基本上按帐户余额排序)。之后,我只是打印出矢量中每个客户端的订购帐号。但是,我认为我没有正确实施它。首先,当我调用向量上的STL堆排序时,我明白我将比较器作为第三个参数传递。我的印象是我需要用我的AccountOrder比较类的对象来调用它,但这给了我大量的错误。如果我把它称作类而不是该类的一个实例,它不会给我几乎那么多的错

    1热度

    2回答

    def heap_sort(nos): global size size = len(nos) print "the size of the List is : %d " %size Build_heap(size,nos) for i in range(size-1,0,-1): nums[0],nums[i] = nums[i],n

    5热度

    1回答

    我试着回答以下规划问题恢复堆条件: 在heap.java计划,insert()方法插入堆中的一个新节点,并确保堆条件被保留。编写一个toss()方法,在堆阵列中放置新节点而不尝试维护堆状况。 (也许每个新项目都可以放在数组的末尾。)然后编写一个restoreHeap()方法,在整个堆中恢复堆状况。重复使用toss()后跟单个restoreHeap()比一次使用insert()重复使用大量数据时效率

    4热度

    4回答

    我想实现双端优先队列有以下限制:需要 在一个固定的大小来实现array..say 100个elements..if新元素需要后添加阵列是满的,历史最悠久的需要移除 需要最大和最小在O(1) 如果可能插入在O(1) 如果可能删除最小在O(1) 清楚为O空/初始状态(1)如果在在O时刻在数组元素的数目的可能 计数(1) 我想O(1)所有上述5个操作,但它不可能在所有的O(1)在相同的实现。至少O(1)