heapsort

    0热度

    2回答

    我试图按升序对10个元素的数组实施堆排序。 我以下步骤 - heap_sort(ARR,size_array): build_max_heap(arr) for(parent=size_array to 1): swap(arr[1],arr[parent]) size_array = size_array - 1; max_heapify(arr,1

    0热度

    1回答

    我正在阅读heapsort从算法介绍, 它声明有 (1)以自下而上的方式构建最大堆。 (2)然后与最后一个元素进行交换,并在第一个元素上调用max hepify,并继续这样。 允许以一个例子对这个输入 - 在构建最大堆 ->7 10 20 3 4 49 50 的步骤将是 7 10 50 3 4 49 20 7 10 50 3 4 49 20 50 10 7 3 4 49 20 这是最大

    0热度

    1回答

    我有一个heapsort算法。 private int heapSize; private void BuildHeap(int[] arr) { heapSize = arr.Length - 1; for (int i = heapSize/2; i >= 0; i--) { Heapify(arr, i);

    0热度

    1回答

    我想在不使用堆数据结构的情况下实现heapsort。更确切地说,我希望在原始数组上完成所有更改。我试图实现它,但我陷入了困境,因为它变成了另一种算法,例如选择排序或冒泡排序。那么,如果我们不使用堆数据结构,那么会被称为heapsort?

    -3热度

    3回答

    快速排序的最坏情况下的时间复杂度为O(n^2),而其他像堆排序和合并排序具有最坏情况下的时间复杂度,因为O(n log n).still快速排序被认为更快...为什么?

    0热度

    1回答

    我目前正在学习排序算法,需要实现HeapSort和Introspective Sort。 我觉得我已经实现堆排序成功(代码工作,试图以百万计随机大小进行随机排列的,总是工作),这里是我的代码: public static <T extends Comparable<? super T>> void hsort(T[] a) { int n = a.length; if(n <

    1热度

    2回答

    我最终试图使用heapsort按字母顺序排序已读入的单词。我从来没有堆积过,所以我试图跟随我的书。我使用cin将单词存储到动态分配的数组中,因为单词数量未知。从单独的代码我知道它正在被读入,并且数组正在变大。然后我试图堆积这个数组,但是由于我是编程新手,所以我一直处于分段错误的位置,我无法确定如何追溯到我做错了什么。这是我的heapify代码: void Heap::make(){ //

    1热度

    2回答

    我有我的堆排序实施小问题。基本上,我实现了它,它基本上适用于具有6个或更少元素的数组。但由于某种原因,任何大于6个元素的东西,排序都是错误的。 例如: 排序{10,64,7,99,32,18}给出了这样的:7,10,18,32,64,99 排序{10,64,7 ,99,32,18,2,48}给出了这样的:2,7,10,32,下面,48,64,99 我的实现。随着数组的大小变大,在某种意义上排序变得

    0热度

    4回答

    我遇到了调用不同类中的方法的问题。该方法在其自己的lab14类别中,heapSort()方法位于不同的类别HeapSort中。这两个类都在默认包中。我收到错误“The method heapSort(Vector)is undefined for the Lab14”,我不明白为什么,请帮忙。下面 是在实验室的主要方法14类 public static void main(String args[

    0热度

    1回答

    我不需要我们有办法应用max-heapify算法吗?我们必须从底部到顶部还是从顶部到底部应用它,还是我们可以应用到堆属性不存在的地方?当我们要在树中维护堆属性时。 任何机构可以帮助 ?