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

Filed under:

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

Related posts about algorithms