|
안녕하세요 ~ ^^
for(i = 0;i < MAX;i++) {
for(j = i + 1;j < MAX;j++) {
if(num[i] > num[j]) {
num[i] += num[j];
num[j] = num[i] - num[j];
num[i] -= num[j];
}
}
}
위의 소스가 정확한 선택정렬 소스코드 잖아요 . . 작은 수부터 ~ 큰수로 . .;;
제가 오름차순하구 내림차순하구 좀 헷갈려서요 ^^;; 이해해주세요 .
근데요 .
for(i = 0;i < MAX;i++) {
for(j = 0;j < MAX;j++) { <---- 이부분 !! 에서 j 를 0 으로 바꾸기만 하면요
if(num[i] > num[j]) {
num[i] += num[j];
num[j] = num[i] - num[j];
num[i] -= num[j];
}
}
}
처음의 선택정렬 결과의 반대의 결과가 나와요.
i가 0이고 j루프를 다 돌고 나면 . num[0]엔 제일 작은 값이 들어가는게 맞죠?
그러면 num[j]가 다시 0부터 시작해도 num[1]보타 클리는 없고...;;;
아무리 생각해도 모르겠어요.
이유를 아시는 분은 설명좀 . . ^^;
다른분들한테 물어보니 구냥 신경쓰지 말구 처음껄루 쓰라구 하시든데 . .;;
도무지 궁금해서 못참겠어요 ㅠ _ ㅠ
빠른 답변 부탁드려요 ~ ^^
( _ _ )
|