퀵소트 이론먼저 보고 실제코드 보니까 이상한부분이있어서 디버깅돌려봤더니...
pivot찾는 과정에서 low가 배열의 인덱스를넘어서거나, high가 인덱스를 넘어서는 경우도있을텐데 이에대한 조건이없더라고??
그래서 디버깅해보니까 내가하는언어에서는 배열인덱스를 초과해서 엑세스할경우 "참조에러"가 나는데 조사식열어서 변수값보니까 에러는 안나고 스레기값이 채워지더라
그래서 그 스레기값이랑 비교를해서 에러가안낫던거였고,....
맞냐?
퀵소트 이론먼저 보고 실제코드 보니까 이상한부분이있어서 디버깅돌려봤더니...
pivot찾는 과정에서 low가 배열의 인덱스를넘어서거나, high가 인덱스를 넘어서는 경우도있을텐데 이에대한 조건이없더라고??
그래서 디버깅해보니까 내가하는언어에서는 배열인덱스를 초과해서 엑세스할경우 "참조에러"가 나는데 조사식열어서 변수값보니까 에러는 안나고 스레기값이 채워지더라
그래서 그 스레기값이랑 비교를해서 에러가안낫던거였고,....
맞냐?
그냥 잘못 짠거잖아
니가 구현을 잘못한듯
ㅇㅇ 맞음 그거 퀵소트 do while 문 있을껀데 조건 조금 바꿔줘야함
도트 : ㅇㅇ 찾아보니까잇더라 ㅋㅋ
그.럴.리.가.없.을.텐.데.요.
low와 hi를 유효한 인덱스 범위 안에 놓고 시작하면 범위를 벗어나지 않음
피봇값을 p라고 할 때 A[low] ≤p일동안 low++, A[hi] >p 일동안 hi--, 하다보면 low ≥ hi 인 때가 오게됨. 인덱스가 오버(언더)플로우 한다면 피봇값이 재수없게 가장 크거나 작은 값으로 뽑혔을때밖에 없는데, 이 때는 반드시 low == hi 가 됨