電子書籍の厳選無料作品が豊富!

分からない問題があります。
どなたかお教え下さい。よろしくお願いします。

Max-Heapify (A,i)
1. L <- 2i
2. R <- 2i+1
3. if L<= heap-size[A] かつ A[L] > A[i]
4. then largest <- L
5. else largest <- i
6. if R<= heap-size[A] かつA[R] > A[largest])
7. then largest <-R
8. if largest !=i
9. then 値の交換A[i] <-> A[largest]
10. Max-Heapify (A,largest)

Build-Max-Heap (A)
1. heap-size[A] <- length[A]
2. for i<- ⌊length[A] /2⌋ downto 1
3 do Max-Heapify (A,i)

Heap-Sort (A)
1. Build-Max-Heap (A)
2. for i<- length[A] downto 2
3 do 値の交換 A[1]<->A[i]
4 heap-size[A] = heap-size [A] – 1
5 Build-Max-Heap (A)

上に示す疑似コードを参考に、以下の問いに答えなさい。ただし、length[A]、heap-size[A]は配列Aの要素数、配列Aに格納されているヒープの要素をそれぞれ示す。
a.ヒープに格納される要素数をnとし、要素の添字の範囲を求めなさい。
b.配列A=<3,9,8,15,4,2,5,1,7,10>からBuild-Max-Heapによりmax-ヒープを生成したときの結果を示しなさい。
c.上のHeapsortは、配列を正しくソートするか?しないなら、正しくソートするようにするにはどのように修正すればよいか?理由と共に答えなさい。
d.マージソートと比較してヒープソートの良い点を述べなさい。

A 回答 (1件)

疑似コードの読み方が分からん.


「何が分からないのか」も分からん.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!