Resolved
Written on
·
180
0
안녕하세요 교수님!
항상 좋은 강의와 피드백 감사드립니다.
본 강의에서 내주셨던 예제를 스스로 구현해봤는데요,
교수님 코드와는 조금 달라 관련해서 질문을 드리고자 합니다.
제가 짠 코드에선 swap 함수가 for문 내에 위치하고 있습니다.
이렇게 되면,
1) 반복 횟수만큼 swap 함수도 실행되니, 상대적으로 반복문을 덜 수행하게 되는 교수님 코드보다, 실행할 때 조금 더 느린 속도를 보일 거라 생각했습니다.
혹시 이러한 제 생각이 정확한가요?
2) 또한, 1) 이외에 제가 짠 코드에서, 더 좋은 코드로 가기 위해
고려해볼만 한 부분이 있다면, 조언 부탁드립니다. :)
void selectionSort(int arr[], int n)
{
int i, j, min_idx;
min_idx = 0;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++)
{
if (arr[i] > arr[j]) {
min_idx = j;
swap(arr + i, arr + min_idx);
}
}
}
}
Answer 1
1
다양한 방법으로 시도해보시는 것은 좋은 일입니다.
아쉽게도 코드를 직접 봐드리기는 어려운데, 이런 궁금증을 갖고 계시는 경우에는 몇 번 호출되는지 세보는 코드를 추가해서 확인하시는 방법, 디버거로 상황을 한 줄 한 줄 파악하는 방법 등이 있겠지요.
자료구조와 알고리즘 공부 시작하시면 computation complexity를 배우시게 되는데 그때 또 다른 사고방식을 터득하시게 될겁니다.