Eleanordum Posted April 29, 2014 Report Posted April 29, 2014 Salut!Ma puteti ajuta, va rog, sa transform urmatorul pseudocod in C? Va multumesc!Scrie?i ?i testati o func?ie C care implementeaz? algoritmul heapsort dup? pseudocodul prezentat lacurs.MAIN()HEAP_SIZE := 0;READ n //lungime arrayREAD_ARRAY(a, n)HEAP_SORT(a, n)PRINT_ARRAY(a, n) // sorted arrayEND MAINHEAP_SORT(A, N)BUILD_MAX_HEAP(A, N)FOR i := N-1 DOWNTO 1exchange A[0] with A[ i ]HEAP_SIZE := HEAP_SIZE -1MAX_HEAPIFY(A, 0)END FOREND HEAP_SORTBUILD_MAX_HEAP(A, N)HEAP_SIZE := N – 1FOR i := [N/2] DOWNTO 0MAX_HEAPIFY(A, i)END FOREND BUILD_MAX_HEAPLEFT (X)RETURN 2 * X + 1END LEFTRIGHT (X)RETURN 2 * X + 2END RIGHTMAX_HEAPIFY (A, X)l := LEFT (X)r := RIGHT(X)IF l ? HEAP_SIZE AND A[ l ] > A[ X ] THENlargest := lELSElargest := XEND IFIF r ? HEAP_SIZE AND A[r] > A[largest] THENlargest := rEND IFIF (largest != X)exchange A[X] with A[largest]MAX_HEAPIFY(A, largest)END IFEND MAX_HEAPIFY Quote
Active Members MrGrj Posted April 29, 2014 Active Members Report Posted April 29, 2014 Sa vad ce ai incercat tu sa faci si te ajut cu placere. Quote