-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[3주차] 정렬 (버블, 선택, 삽입, 셀, 머지, 퀵, 힙) #6
base: main
Are you sure you want to change the base?
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이런 일은 swap이라는 말을 더 많이 사용하는 것 같네요.
[array[index1], array[index2]] = [array[index2], array[index1]]; | ||
}; | ||
|
||
const isFirstBiggerThanSecond = (a, b) => a > b; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
함수가 하는 일을 굉장히 자세하게 작성하셨네요. 아마도 각 파라미터가 무엇을 의미하는지까지 명시해주고 싶으셨던 것 같습니다. isGreaterThen 정도도 괜찮을 것 같네요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아마도 각 파라미터가 무엇을 의미하는지까지 명시해주고 싶으셨던 것 같습니다.
정확히 제가 의도한 바가 맞습니다. ㅎㅎ
함수명이 너무 길어지는 것 같긴하지만 나중에 제 코드를 제가 다시 읽을 때도
무슨 의미였는지 잘 기억나는 효과가 있어서 이런 식으로 작성해보려고 합니다.
3주차도 화이팅입니다! :)
질문
힙 정렬 강의 중에서 5:44 에서 다음과 같이 언급해주셨는데요.
이미지 상으로 배열 1/2 지점 이후 (6), (3) 에는 자식 노드가 없어서
싱크할 필요가 없는 것이다라고 이해했는데 맞는지 모르겠네요. 😢
어느 경우에든 1/2 지점 이후에는 자식 노드가 없다라는 것이 보장이 되는 것일까요?