Conversation
네 맞습니다. 만약 강의에서 주어진 힙이 꽉차 있더라도 아래 그림처럼 1/2지점이 자식이 있는 노드의 첫번째가 되는거죠. 아래 그림에서는 자신 노드가 있는 첫 번째 노드가 5번째 노드가 되고요. 이게 바이너리 트리의 특징인데 첫번째 depth는 2^0 개 다르게 생각하면 가장 마지막 노드의 부모라고 생각할 수도 있어요. 노드의 부모는 자신의 인덱스의 1/2이잖아요. 그러면 자식 노드가 있는 가장 마지막 노드를 선택하게 되는거죠 |
| @@ -1,4 +1,26 @@ | |||
| const exchange = (array, index1, index2) => { | |||
There was a problem hiding this comment.
이런 일은 swap이라는 말을 더 많이 사용하는 것 같네요.
| [array[index1], array[index2]] = [array[index2], array[index1]]; | ||
| }; | ||
|
|
||
| const isFirstBiggerThanSecond = (a, b) => a > b; |
There was a problem hiding this comment.
함수가 하는 일을 굉장히 자세하게 작성하셨네요. 아마도 각 파라미터가 무엇을 의미하는지까지 명시해주고 싶으셨던 것 같습니다. isGreaterThen 정도도 괜찮을 것 같네요.
There was a problem hiding this comment.
아마도 각 파라미터가 무엇을 의미하는지까지 명시해주고 싶으셨던 것 같습니다.
정확히 제가 의도한 바가 맞습니다. ㅎㅎ
함수명이 너무 길어지는 것 같긴하지만 나중에 제 코드를 제가 다시 읽을 때도
무슨 의미였는지 잘 기억나는 효과가 있어서 이런 식으로 작성해보려고 합니다.


3주차도 화이팅입니다! :)
질문
힙 정렬 강의 중에서 5:44 에서 다음과 같이 언급해주셨는데요.
이미지 상으로 배열 1/2 지점 이후 (6), (3) 에는 자식 노드가 없어서
싱크할 필요가 없는 것이다라고 이해했는데 맞는지 모르겠네요. 😢
어느 경우에든 1/2 지점 이후에는 자식 노드가 없다라는 것이 보장이 되는 것일까요?