정성훈
    도전문제 2) (모범 답안)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#define SIZE 5
 
int main(void)
{
    int i, k;
    int list[SIZE] = { 16, 7, 9, 1, 3 };
 
    // 배열의 요소를 정렬한다. 
    for (k = 0; k < SIZE; k++) {
        for (i = 0; i < SIZE -k -1; i++) {
            if (list[i] > list[i + 1]) {    // 크기 순이 아니면
                                            // 서로 교환한다. 
                int tmp = list[i];
                list[i] = list[i + 1];
                list[i + 1] = tmp;
            }
        }
    }
 
    // 배열의 요소를 출력한다. 
    for (i = 0; i < SIZE; i++) {
        printf("%d ", list[i]);
    }
    return 0;
}
cs

바깥 for loop 가 수행된 횟수만큼 배열 뒷쪽의 수는 정렬이 되어있기 때문에 더 이상 정렬할 필요가 없다.


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#define SIZE 5
 
int main(void)
{
    int i, k;
    int list[SIZE] = { 16, 7, 9, 1, 3 };
 
    // 배열의 요소를 정렬한다. 
    for (k = 0; k < SIZE; k++) {
        int swap_flag = 0;
        for (i = 0; i < SIZE -k -1; i++) {
            if (list[i] > list[i + 1]) {    // 크기 순이 아니면
                                            // 서로 교환한다. 
                int tmp = list[i];
                list[i] = list[i + 1];
                list[i + 1] = tmp;
                swap_flag = 1;
            }
        }
        if (swap_flag == 0) break;
    }
 
    // 배열의 요소를 출력한다. 
    for (i = 0; i < SIZE; i++) {
        printf("%d ", list[i]);
    }
    return 0;
}
cs

이미 정렬이 완성되었으면 더 이상 바깥 for loop 가 수행될 필요가 없다.

  등록일 : 2022-04-03 [16:43] 조회 : 1631 다운 : 0   
 
△ 이전글도전문제 2)
▽ 다음글도전문제 1)
C프로그래밍(프로그래밍언어) 실습게시판
번호 ⓒ 제 목
Mini Project (어드벤처 게임 만들기) 추가 구현 // ★★★ 기말과제 게임...
실습 목차
172 └❶ Mini Project (tic-tac-toe 게임)
171    └❷ Mini Project (tic-tac-toe 게임) (모범 답안)
170       └❸ Mini Project (tic-tac-toe 게임) 확장©
169          └❹ Mini Project (tic-tac-toe 게임) 확장 (모범 답안)
168 └❶ 추가 도전 문제 1ⓘ
167    └❷ 추가 도전 문제 1 (모범 답안)
166 └❶ 도전문제 2)
165    └❷ 도전문제 2) (모범 답안)
164 └❶ 도전문제 1)
163    └❷ 도전문제 1) (모범 답안)
162 └❶ lmatrix.c (교재)
161 └❶ ltwo_dim.c (교재)
160 └❶ ldraw_bubble.c (교재)
159 └❶ lbubble.c (교재)
158    └❷ bubble.c (for loop 최적화)
157       └❸ bubble.c (조기 종료 추가)
156 └❶ lsearch.c (교재)
155    └❷ search.c (학생 풀이) 탐색 실패 표시©
154       └❸ search.c (학생 풀이) 탐색 실패 표시 (모범 답안)
153 └❶ lget_min.c (교재)

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]