Heap property of this array
- by davit-datuashvili
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?