함수부분 버블정렬 관련 문제...ㅠ
수리
2023.08.15
질문 제목 :함수부분 버블정렬 관련 문제입니다.ㅠ
#include stdio.h
void swap(int *i, int *j)
{
int temp;
temp = *i;
*i = *j;
*j = temp;
}
void bubbleSort(int data[], int n)
{
int i, j;
for (i = 0; i n - 1; i++)
{
for (j = 0; j n - 1; j++)
{
if (data[j] data[j + 1])
swap(&data[j], &data[j + 1]);
}
}
}
main ()
{
int data[] = { 5, 4, 3, 2, 1 };
int i;
bubbleSort(data, 5);
for (i = 0; i 5; i++)
printf(%d , data[i]);
}
중간단계에서 데이터가 정렬되면 다음단계로 진행하지 않도록 bubbleSort() 함수를 변경하여라...
swap() 함수가 한 번도 호출되지 않았으면 정렬이 된것이다. 변수를 사용하여 swap() 함수가 호출되는지 확인하여, 한 번도 호출되지 않았으면 i를 이용하는 for문을 break하면 된다.문제도 이해가 잘 안되구 어떻게 바꿔야 할지도 잘 모르겠어요ㅠ