반복 조건 내에서 배열 인덱스에 대한 증감 연산자 사용 문제
글쓴이: paranmir / 작성시간: 수, 2013/06/12 - 8:45오후
C 프로그램 내에서 반복문을 아래와 같이 구성했을 때에는 원하는 결과를 얻을 수 있었으나,
while(low <= high) { while(pivot > arr[low]) low++; while(pivot < arr[high]) high--; if(low <= high) Swap(arr, low, high); }
다음과 같이 변경하면 원하는 결과가 나오지 않습니다.
while(low <= high) { while(pivot > arr[low++]); while(pivot < arr[high--]); if(low <= high) Swap(arr, low, high); }
같은 방식으로 실행될 것이라 기대를 했었는데, 두 번째 코드에 어떤 문제가 있는 것인지 이유를 알지 못하겠네요... 조언 부탁 드립니다. ^^
Forums:
gilgil.net
while을 if로 대체해서 보시면 이해가 더 편하실 듯...
if(pivot > arr[low]) low++; // 조건이 참이 되면 low 값 증가
if(pivot > arr[low++]); // 조건과 관계없이 low값 증가
www.gilgil.net
아... 증감연산을 조건 만족시에만 실행되도록 해야
아... 증감연산을 조건 만족시에만 실행되도록 해야 하는데 조건 검사과정에서 증감연산을 하도록 하니 안되는 것이 당연하군요... 너무 바보같은 질문을 했네요... ^^;;;
댓글 달기