디지털·가전제품
코드 작년중간고사 풀이방법 알려주실분 구합니다
풀이 식 좀 알려주세요.
풀이 방법만 알려 주세요.
풀이 방식 좀 알려주세요
풀이 법 좀 알려주세요.
문제 풀이 방식 해결 법 좀 알려주세요
제발요
1개의 답변이 있어요!
이 문제는 선택 정렬(Selection Sort) 알고리즘을 이해하면 쉽게 풀 수 있습니다.
선택 정렬 풀이 방식
1. 전체 배열에서 가장 작은 값을 찾아 첫 번째 자리로 이동
2. 남은 배열에서 다시 가장 작은 값을 찾아 두 번째 자리로 이동
3. 이 과정을 끝까지 반복합니다.
4. 각 단계마다 배열 상태를 출력하므로, 원하는 단계까지 배열 상태를 계속 바꿔가며 확인하면 됩니다.
단계별 과정을 처리하려면
i가 현재 정렬하려는 인덱스
j는 그 뒤에서 가장 작은 값 찾는 루프
코드 흐름:
for (int i = 0; i < size - 1; i++) {
minIndex = i;
for (int j = i+1; j < size; j++) {
if (arr[j] < arr[minIndex])
minIndex = j;
}
swap(arr[i], arr[minIndex]); // 가장 작은 값을 앞으로 옮김
}
즉, 핵심은:
“i번째 이후에서 가장 작은 값을 찾아 i번째와 바꾼다”
이걸 반복하며 배열이 정렬되는 과정을 추적하면 됩니다