Skip to content

[조효형] 3주차 과제 #5

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

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

Conversation

bereal1995
Copy link

작업내용

전체적으로 강의를 보고나서 과제를 진행하였습니다.
이번주에는 리드미에 적힌 방식대로 해보았는데 그림을 그려가면서 하니까 재밌네요 ㅎㅎ
추가로 다음주에는 강의 하나씩 보면서 과제를 풀어나가도 괜찮을 것 같아서 그렇게 도전해볼 예정입니다!

궁금한 점

  • 쉘 정렬에서 h값은 예시코드보고 적용해보았는데 통상적으로 많이 쓰는 공식인건가요 ??
  • 재귀적으로 구현하는 코드를 볼때 머릿속으로 뭔가 잘 안그려지는 느낌인데 많이 사용하는것도 중요하겠지만 도움이 될만한 아티클이나 책같은게 있을까요 ??
  • 힙 정렬부분에서는 README 파일내용이 퀵정렬이랑 내용이 섞인것 같은데 확인 부탁드립니다!

@bereal1995 bereal1995 changed the title 3주차 과제 [조효형] 3주차 과제 Dec 25, 2023
@hannut91
Copy link
Contributor

hannut91 commented Dec 27, 2023

쉘 정렬에서 h값은 예시코드보고 적용해보았는데 통상적으로 많이 쓰는 공식인건가요 ??


아닙니다. 단순한 예시일 뿐이고 1로 수렴하는 시퀀스라면 어떤 것을 사용해도 무관합니다. 다른 곳에서는 주어진 배열 길이의 1/2부터 시작해서 1/2씩 줄여서 1로 수렴하는 예제도 사용하기도 합니다. 중요한 것은 이 h값에 따라서 효율성이 달라질 수 있다는 것입니다.

@hannut91
Copy link
Contributor

재귀적으로 구현하는 코드를 볼때 머릿속으로 뭔가 잘 안그려지는 느낌인데 많이 사용하는것도 중요하겠지만 도움이 될만한 아티클이나 책같은게 있을까요 ??


재귀적인 코드를 구현하고 읽는 능력은 연습밖에 없는 것 같아요. 재귀적인 사고를 연습해야돼요. for문이나 while문을 작성해서 코드가 어떻게 반복해야하는가?라고 작성하기 보다는, 특정 변수가 주어진 시점에 함수는 무슨일을 해야하는 가?로 봐야하거든요. 예를들어서 종료조건인 경우와 반복해야하는 경우 함수가 두 가지 일로 하는 걸로 바라볼 수 있어요.

재귀적인 코드를 코드가 실행되는 순서대로 따라가는 것은 거의 불가능에 가깝거든요. 인간의 뇌가 이걸 잘 못해요. 대신에 시각화를 통해서 조금 문제를 해결할 수 있긴 합니다. 콜스택에 담겨진 데이터를 손으로 그려보면서 하면 좀 낫긴 할거에요.
프로그래머의 뇌 - 교보문고책에서 코드를 읽을 때 왜 어려운지, 그래서 어떻게 해야하는지 조금 다루고 있긴합니다. 예를들어서 상태표를 그리면서 변수를 읽는 방법이 있어요. 제가 강의에서도 이를 활용해서 코드를 읽긴 하거든요. 예를들면 이런식이죠

스택 current index
1 ['a, 'b', 'c' ] 0
2 ['a, 'b' ] 1
3 ['a' ] 2

@hannut91
Copy link
Contributor

힙 정렬부분에서는 README 파일내용이 퀵정렬이랑 내용이 섞인것 같은데 확인 부탁드립니다!

수정할게요 제보 감사합니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants