この予想通り、私のminheapアルゴリズムは、しかし、それが機能していないです:データ要素は、様々な順序で追加されたアルゴリズムが正しくないminHeapsを返し最小ヒープアルゴリズム
public static int [] fixheap(int heap[], int n, int i){
int j=2*i;
int weight = heap[i];
while (j<=n){
if((j<n) && heap[j] > heap[j+1])
j++;
if(weight <= heap[j]) break;
else
heap[j/2] = heap[j];
j=j*2;
}
heap[j/2]= weight;
return heap;
}
public static void makeheap(int heap[], int n){
for (int i=n/2; i>=0; i--){
fixheap(heap, n ,i);
}
}
。誰もこの最小ヒープアルゴリズムの明らかな問題を見ることができますか?
適切な回答を受け入れるようにしてください。 –