2008/6/8 viking leon <[EMAIL PROTECTED]>:
> preprocess bikin:
> - binary search tree (left selalu lebih kecil dari parent, kanan selalu
> lebih gede dari parent)
> tapi yang disimpan dalam binary tree adalah indexnya bkan valuenya
>
> untuk array ini: [2,4,1,3]
> BST value-nya:
>               2
>            /      \
>         1          4
>                   /
>                  3
> BST indexnya:
>               0
>            /     \
>          2        1
>                   /
>                 3
> tuk bikin BST dari array yang sudah ada kira2: O(n)


Good answer!

BST nya bagus, tapi ada kekurangan.

Kalau input saya adalah

A = [ 1, 2, 3, 4, .., 1000000 ]

Maka BST kamu akan lempeng ke kanan :P
Pencarian Query nya akan jadi O ( N ) bukan O ( log N ) lagi.

> searchnya kira2 = O(log n)

Kalau konstruksi BST nya seperti diatas, maka statement itu tidak benar.
Bagaimana anda tweak BST nya supaya querynya guaranteed O ( log N ) ?

Felix Halim

Kirim email ke