[수치해석]난수 선택정렬(selecttion sort) or 합병정렬(merge sort) - 1~9999범위사이의 난수 10개를 뽑아서 선택정렬과 합병정렬을 하라 (소스)
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[수치해석]난수 선택정렬(selecttion sort) or 합병정렬(merge sort) - 1~9999범위사이의 난수 10개를 뽑아서 선택정렬과 합병정렬을 하라 (소스)에 대한 보고서 자료입니다.

목차

선택정렬 (selecttion sort)

· 소스
· 실행화면

합병정렬 (merge sort)

· 소스
· 실행화면

본문내용

#include
#include
void merge(int initList[], int mergedList[], int i, int m, int n)
{
int j,k,t;
j=m+1;
k=i;
while(i<=m && j<=n)
{
if(initList[i]<=initList[j])
mergedList[k++] = initList[i++];
else
mergedList[k++] = initList[j++];
}
if(i>m)
for(t=j; t<=n; t++)
mergedList[t] = initList[t];
else
for(t=i; t<=m; t++)
mergedList[k+t-i] = initList[t];
}
void mergePass(int A[], int ExtraArray[],int ArrayLength,int s)
{
int i,j;
for(i=0; i<=ArrayLength-2*s+1; i += 2*s)
merge(A, ExtraArray, i,i+s-1,i+2*s-1);
if(i+s-1 merge(A,ExtraArray,i,i+s-1,ArrayLength);
else
for(j=i; j<=ArrayLength; j++)
ExtraArray[j]=A[j];
for(i=0; i<10; i++)
{
printf("%d ",A[i]);
}
printf("\n\n");
}
void mergeSort(int A[], int ArrayLength)
{
int i, j=0;
int s = 1;
int ExtraArray[11];
printf("------------------합병 정렬 중 ------------------ \n\n");
while(s {
printf("%d스텝 = ",++j );
mergePass(A,ExtraArray,ArrayLength,s);
s*=2;
printf("%d스텝 = ",++j);
mergePass(ExtraArray,A,ArrayLength,s);
s*=2;//s 에 곱하기 2
}
printf("------------------합병 정렬 후 ------------------ \n\n");
printf("총스텝 = %d\n\n",j);
printf("정렬완료 = ");
for(i=0; i<10; i++)
{
printf("%d ",A[i]);
}
printf("\n\n");
}
int main(void)
{
int Array[10];
srand(time(NULL));
int i;
for(i=0; i<10; i++)
{
Array[i]=rand()%10000;
}
printf("------------------합병 정렬 전 ------------------ \n\n");
printf("배열원본 = ");
for(i=0; i<10; i++)
{
printf("%d ",Array[i]);
}
printf("\n\n");
mergeSort(Array,10);
return 0;
}
· 실행화면

키워드

  • 가격1,300
  • 페이지수7페이지
  • 등록일2012.11.29
  • 저작시기2012.10
  • 파일형식한글(hwp)
  • 자료번호#822900
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니