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算法嗎?我們必須從底部到頂部還是從頂部到底部應用它,還是我們可以應用到堆屬性不存在的地方?當我們要在樹中維護堆屬性時。 任何機構可以幫助 ?