'IT taste/#4 Algorithm'에 해당되는 글 1건

  1. 2010.09.12 [Sorting]Exchange Sorting (작성중)

[Sorting]Exchange Sorting (작성중)



동적할당을 통한 입력 후 교환정렬 실행

 
int main()
{
     int count = 0; // 연산횟수를 누적
     int tmp = 0;

      int i = 0;
      int j = 0;

      int n = 0; // n값을 입력받은 만큼 배열을 생성
      int* s;
 
      fputs("n값을 입력하시오. \n(입력받은 n값 만큼 배열 생성)\n", stdout);
      fputs("=======================================================\n", stdout);
      fputs("입력 : ", stdout);
      scanf("%d", &n);

      s = (int*)malloc(sizeof(int)*n);
 
      fputs("=======================================================\n", stdout);
      printf("배열의 각 요소 값을 %d개 입력하시오.(0 ~ %d) :\n", n, n);

      for(i = 0; i < n; i++)
      {
             printf("%d번째값 입력 : ", i+1);
             scanf("%d", &s[i]);
      }

      fputs("=======================================================\n", stdout);
      printf("입력받은 %d개의 배열 값 : \n", &n);

 
      for(i = 0; i < n; i++)
      {
             printf("%d ", s[i]);
      }

      fputs("\n", stdout);
      fputs("=======================================================\n", stdout);
      fputs("교환 정렬을 시작합니다.\n", stdout);

      for(i = 0; i <= n-2; i++)
      {
            for(j = i+1; j <= n-1; j++)
            {
   
                    if(s[j] < s[i])
                    {
                     tmp = s[j];
                     s[j] = s[i];
                     s[i] = tmp;
                     count++;
                     // printf("%d 회 : s[j] = %d   >   s[i] = %d\n", count, s[j], s[i]);
                    }
           }
      }
 
      fputs("=======================================================\n", stdout);
      fputs("교환정렬 후의 배열 값 : ", stdout);

      for(i = 0; i < n; i++)
      {
             printf("%d ", s[i]);
      }
 
      fputs("\n", stdout);
      fputs("=======================================================\n", stdout);
      printf("총 교환 횟수 : %d \n", count);
      fputs("=======================================================\n", stdout);
 
      return 0;
}


prev 1 next