qqa12345   3년 전

안녕하십니까 해당 문제 퀵정렬로 정답은 맞았으나 찝찝한 부분이 있어서 질문드립니다. 문제의 출제 의도와는 맞지않으나 

해당 문제를 풀다 생긴 궁금증에 대한 질문 남겨봅니다!

13번 행을 보시면

int pivot = arr[(i+j) /2]; 라고 되어 있습니다. 

이것을 int pivot = (i+j) /2; 라고 선언한 뒤,  23번 행과 27번 행에 arr[pivot] 하는 것에 어떤 차이가 있는 건가요??

위의 것으로 하면 정답이지만 아래의 것으로 하면 정렬이 되지 않는 경우가 있던데 두 번째 풀이의 문제가 무엇인지 알고 싶습니다!!

djm03178   3년 전

말씀하신 대로 바꾸면 arr의 pivot번째 자리에 있는 값이 중도에 바뀔 수가 있습니다.

qqa12345   3년 전

헉 감사합니다,, 아주 기본적인건데 제 코드도 제대로 못 읽었네여,,

댓글을 작성하려면 로그인해야 합니다.