삽입정렬에 관한 문제인데
반복분에서 보면 a[k]>key 참이면 a[k|1]>a[k]이고 이 반복문에서 나오면 a[k+1]=key 인데
예를들어 배열이 8 5 4 2 3 이라고하면
제일 바깥 반복문이 i=2,10,1 이므로 key = a[2] 즉 5가 key값이 되고
k=1,1,-1 이므로 a[1]>key 8>5 참이므로 a[2] = a[1] 값으로 저장되는데
그렇게되면 배열은 8 8 4 2 3 그다음이 a[2]=key 가되므로 key 값은 8이되서 i가 3일때로 넘어가는데
그렇게되면 5랑 8이랑 자리를 바꾸는 격인데 왜 a[k]값에 지정해주는 값은 없는건가요?
안녕하세요 길벗수험서 운영팀입니다.
내부 반복문 k를 종료한 뒤,
a[k+1] = key 가 말씀하시는 역할을 수행합니다.
말씀하신 예시를 그대로 인용하여, key가 5일 때,
a[k]>key가 참이되어 배열 a[]가 8 8 4 2 3으로 바뀌고 내부 반복문 k가 종료되었다고 가정하겠습니다.
이 때 k는 1이 되겠죠.
이 때 a[k+1] = key를 수행하게 되면, 배열 a[]는 8 5 4 2 3 이 됩니다.
행복한 하루 되세요 :)
-
관리자2019-02-07 15:58:42
안녕하세요 길벗수험서 운영팀입니다.
내부 반복문 k를 종료한 뒤,
a[k+1] = key 가 말씀하시는 역할을 수행합니다.
말씀하신 예시를 그대로 인용하여, key가 5일 때,
a[k]>key가 참이되어 배열 a[]가 8 8 4 2 3으로 바뀌고 내부 반복문 k가 종료되었다고 가정하겠습니다.
이 때 k는 1이 되겠죠.
이 때 a[k+1] = key를 수행하게 되면, 배열 a[]는 8 5 4 2 3 이 됩니다.
행복한 하루 되세요 :)