차례차례 비교해나가는 방식
#include <stdio.h>
#define SIZE 5
int main() {
int list[SIZE] = {3, 2, 5, 1, 4};
int temp;
printf("정렬 전 순서\n");
for (int i = 0; i < SIZE; i++)
printf("%d ", list[i]);
printf("\n");
for (int i = 0; i < SIZE - 1; i++) { // SIZE - 1 -> 마지막 대상은 비교 필요X
for (int j = i + 1; j < SIZE; j++) { // j = i + 1 -> 선정 위치 다음값부터 마지막까지 비교
if (list[i] > list[j]) {
temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
}
printf("정렬 후 순서\n");
for (int i = 0; i < SIZE; i++)
printf("%d ", list[i]);
printf("\n");
return 0;
}
이 알고리즘의 핵심이라 할 수 있는 중첩반복문 내 조건문 예시
i = 0, j = 1 일 때 가정
-> 조건에서 list[i] = 3, list[j] = 1