버블 정렬 배열 수

조회수 450회

지금 정렬 알고리즘 짜고 있는데요

include

include

include

void bubble_sort(int a[], int size);

void main() { int num, i, j, k; printf("Enter the number:"); scanf("%d", &num); int arr = (int)malloc(sizeof(int)*num); srand(time(NULL)); if (num > 10) { for (i = 0; i < num; i++) { arr[i] = rand() % num + 1; for (j = 0; j < i; j++) { if (arr[i] == arr[j]) { i--; break; } } } bubble_sort(arr, num);

}

else { for (i = 0; i < num; i++) { arr[i] = rand() % num + 1; for (j = 0; j < i; j++) { if (arr[i] == arr[j]) { i--; break; } } } printf("\nBefore sort:"); for (k = 0; k < num; k++) { printf("%d ", arr[k]); } bubble_sort(arr, num); printf("\nAfter sort:"); for (k = 0; k < num; k++) { printf("%d ", arr[k]); } printf("\n"); } free(arr);

return;

}

void bubble_sort(int a[], int size) { time_t start, end; int swap, temp; time(&start); swap = 1; for (long j = size-1; j >=0 && swap; j--) { swap = 0; for (long i = 0; i <=j-1; i++) { if (a[i] > a[i+1]) { temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; swap = 1; } } }

time(&end); printf("\ntime: %.2f", difftime(end,start));

}

이렇게 짯는데 num가 32768 까지는 정상적으로 소팅이 되는데 32769가 되는 순간부터 응답이 없더라고요... 일단 빌드는 되는데 무한루프처럼 콘솔창이 가만히 있는데 뭐가 문제일까요 ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 코드좀 정리해주세요 ㅠ 알 수 없는 사용자 2020.3.30 23:08
  • 이거 코드 10 이상 값 넣으면 답이 나오긴하나요? 김호원 2020.3.31 09:33

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)