Heap property of this array
Posted
by davit-datuashvili
on Stack Overflow
See other posts from Stack Overflow
or by davit-datuashvili
Published on 2010-05-15T18:14:18Z
Indexed on
2010/05/15
18:24 UTC
Read the original article
Hit count: 186
algorithms
From programming pearls, it is known that array[1...n] has heap property if for all 2<=i<=n x[i/2]<=x[i].
Here is my code:
import java.math.*;
public class Heap {
public static void main(String[]args){
int x[]=new int[]{12,20,15,29,23,17,22,35,40,26,51,19};
int i=1;
while (i<x.length) {
if (x[Math.round(i/2)]<=x[i]) System.out.println("heap");
i++;
}
System.out.println("not heap");
}
}
Here I used Math.round because 4/2 and 5/2 is same and =2. When I compile this code it shows me at last line that it is not heap. Maybe because the index starts from 1 and we don't pay attention to index 0, yes?
© Stack Overflow or respective owner