#include <stdio.h>
int main()
{
int DataSet[] = { 4, 1, 5, 2, 3 };
int length = sizeof(DataSet) / sizeof(int); // 전체 요소의 갯수
int count;
int complite;
// 버블 소트를 구현해보세요.
// 맨 뒤에서 부터 정렬되기 때문에
// 전체 - 1 만 해도 된다.
// 마지막에 남은 작은 수는 자동으로 정렬되기 때문이다.
for (int i = 0; i < length - 1; i++) // i = 2, length = 5
{
count = 0;
complite = length - 1 - i;
// 버블소트는 안쪽 for문이 돌면 맨 뒤쪽부터 정렬이 된다.
// 그렇기때문에 반복 횟수를 하나씩 줄여가면된다.
for (int j = 0; j < length - 1 - i; j++)
{
// 1, 2, 3, 4, 5
if (DataSet[j] > DataSet[j + 1])
{
// 앞에 있는 값이 크면 temp에 값을 넣는다.
int temp = DataSet[j];
DataSet[j] = DataSet[j + 1];
DataSet[j + 1] = temp;
}
else
{
count++; // 2
if (count == complite)
break;
}
}
}
// 정렬된 내용을 출력
for (int i = 0; i < length; i++) {
printf("%d ", DataSet[i]);
}
return 0;
}
댓글 영역