되는대로 살자

[C언어 기출문제&풀이] 직접 선택법 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 직접 선택법

malu 2011. 5. 11. 19:40

부분 배열 a[i]i~a[n-1]중에서 최소항을 찾아 그 값을 a[i] 와 교환하는 과정을 부분 데이터 a[0]~a[n-1]에서 시작해서 부분 데이터가 a[n-1]이 될때까지 반복한다. 자세한 이해는 소스코드를 보면 될 것이다.

#include <stdio.h>

#define N 6

int main(void)
{
 static int a[]={80,41,35,90,40,20};
 int min,s,t,i,j;

 for(i=0;i<N-1;i++){
  min=a[i];
  s=i;
  for(j=i+1;j<N;j++){
   if(a[j]<min){
    min=a[j];
    s=j;
   }
  }
  t=a[i]; a[i]=a[s]; a[s]=t;
 }
 for(i=0;i<N;i++)
  printf("%d ",a[i]);

 printf("\n");
 return 0;
}