되는대로 살자

[C언어 기출문제&풀이] bubble sort 본문

2009~2014/C/C++

[C언어 기출문제&풀이] bubble sort

malu 2011. 7. 21. 20:42
프로그램 명: bubble
제한시간: 1 초

다음 애플릿은 버블 소트가 이루어지는 과정이다.

//// [동작보기 클릭] //////

데이터 수 , 스텝 수가 주어질 때 위와 같이 동작하도록 한 후 주어진 스텝 후의 배열의 상태를 출력하는 것이다.

예를 들어 7 개의 데이터가 주어지고 , 2 스텝 후의 상태는

             6 2 9 8 3 4 7
1 번째 스텝: 2 6 8 3 4 7 9
2 번째 스텝: 2 6 3 4 7 8 9
2 6 3 4 7 8 9 를 출력하면 된다.

입력

입력의
  • 첫 줄은 데이터의 개수 n, 스텝 수 s 가 주어진다. ( 1 <= s < n )
  • 다음 줄에는 n 개의 데이터가 입력으로 주어진다. 각 수는 -1000 에서 1000 사이 정수이다.

n 은 1000 이하의 양의 정수이다.

출력

s 스텝 후의 상태를 한 줄에 출력한다.

입출력 예

입력

7 2
6 2 9 8 3 4 7

출력

2 6 3 4 7 8 9
출처:dovelet
#include <stdio.h>

풀이 : 문제 조건 대로 

소스코드

 

#define N 6
int main()
{
 static int a[]={123,234,345,132,243,492};
 int i,j,t;
 for(i=0;i<N-1;i++){
  for(j=N-1;j>i;j--){
   if(a[j]<a[j-1]){
    t=a[j];
    a[j]=a[j-1]; a[j-1]=t;
   }
  }
 }
 for(i=0;i<N;i++)
  printf("%d ",a[i]);

 printf("\n");

 return 0;
}