토너먼트 트리라는 알고리즘 


배열이 이렇게 있으면 [ 9 2 4 6 3 1 5 ]

전부 단말노드로 만들만큼 트리 확보해서 집어넣고

큰놈이 부모노드로 올라감 


              [9]

       [9]             [5]

  [9]      [6]     [3]     [5]

[9] [2] [4] [6] [3] [1] [5] [0]


이게 토너먼트 처음 진행된 트리 

당연히 O(n)시간 ( 인덱스 끝에서부터 -2씩 감소 시키면서 비교 )


그다음 단말노드에서 제일 큰 노드를 0으로 바꾸고 

다음 토너먼트 진행함 



              [6]

       [6]             [5]

  [2]      [6]     [3]     [5]

[0] [2] [4] [6] [3] [1] [5] [0]

   

이것도 위에처럼 진행할 수 잇는데 ( -2씩 감소시키면서 비교 ) 

수정할부분은 사실 저거밖에없잖아 

그럼 O(lgN) 으로 만들수 잇고


나는 레벨1에서 최댓값 인덱스 찾을때까지 내려가려고 생각하고잇는대


더빠르게할수잇나