Problem1555--二分查找树的高度

1555: 二分查找树的高度

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 34  Solved: 23
[Submit] [Status] [Web Board] [Creator:]

Description

对一个长度为n的升序数组进行二分查找,可以得到一颗二分查找树,求出每个位置所在结点的高度。
显然这个高度值只和位置有关,和每个位置具体的值无关。
二分查找的代码如下:
void bSearch(int x){
    int l = 1, r = n;
    while(l<=r){
        int m = (l+r)/2;
        if(a[m]==x)return m;
        else if(a[m]<x)l = m+1;
        else r = m-1;
    }
    return -1;
}

Input

多组输入。
每组输入一个正整数n(n<=10000),代表升序数组的长度。

Output

每组输出n个正整数,代表每个位置所在结点的高度。

Sample Input

4

Sample Output

2 1 2 3

HINT

n=4时,构建的二分查找树如下:


Source/Category