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: 217
        
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