|
|
|
 |
 |
| 키워드 : |
|
|
| 소개글 |
C언어 bubblesort응용 |
| 요약 |
1.A: 제가 사용한 방식은 Divide-and-Conquer 방식을 약간 바꿔서 a[0] 과 a[1]을 비교하여 큰 수를 b[0]에 넣고 a[3] 와 a[4]를 비교하여 큰 수를 b[1]에 넣는 식으로 하여 b[]에 넣고 b[]의 두 수를 각각 비교하여 큰 수를 다시 c[]에 넣는 방식을 취하여 몇 개의 array를 만들어서 최종적으로 f[]의 array에 오름차순으로 배열하였습니다.
B.
i,ii: 위쪽에 있는 두 줄은 16개의 무작위의 순서로 배열된 숫자이고 아래쪽에 있는 두 줄의 숫자는 오름차순으로 정리가 된 후의 숫자입니다. iii:제 sort의 경우 각 경우에서 숫자의 움직임을 다른 array에 배열하는 숫자로 본다면 a[]->b[] 과정에서 8회 b[]-> c[] 과정에서 4회 c[]->d[]과정에서 2회 d[]->e[]과정에서 1회가 걸리며 8+4+2+1=15로 가장 큰 수를 결정하는데 15회의 숫자 배열이 필요합니다. a[]의 최대값은 다시 0으로 바뀌게 되며 이 과정을 14회 더 하게되면 16개의 숫자중에 15개의 숫자가 f[] array에 배열이 되며 이에 총 이동된 숫자의 횟수는 15 X 15 = 225회가 되며 마지막 숫자를 f[0]에 넣어주면 총 226회의 숫자 이동을 하게 됩니다. 제 sort의 숫자 이동횟수는 srand(time(NULL))에 의해 시행할 때마다 다른 수가 나오는것과는 관계가 없게 됩니다. iv.제 sort에 의한 숫자 이동 숫자는 시행횟수에 관계없이 226회가 됩니다.
마지막으로 한번 더 결과를 출력하여 srand 함수의 사용여부를 보이도록 하겠습니다.
C.Source code를 첨부하시오.
#include #include
void main(void) { int i, j, a[16], b[8],c[4], d[2], e[1], f[16];
srand(time(NULL)); printf("무작위로 선택된 숫자들:"); for(i = 0; i <= |
 |
|
|
 |
|

위 정보및 게시물 내용의 진실성에 대하여 보증하지 아니하며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보및 게시물 내용의 불법적 이용, 무단전재및 배포는 금지되어 있습니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 하단의 저작권 침해신고를 이용해 주시기 바랍니다. |
|