본문 바로가기

C/C++/예제

[C 예제] 선택 정렬 과 검색.

반응형

C 예제.

선택 정렬 과 검색.

 

8자리의 배열 변수에 정렬되있지 않은 원소를 채워주고 선택 정렬을 통해 정렬 한뒤,

내가 찾고자 하는 값을 입력받아 몇번째 자리에 있는지 알려주는 예제.

 

#include 
 
void SelectionSort(int a[], int size)   // 선택 정렬 함수.
{ 
   int i, j, t, min, temp; 
   printf("\n정렬할 원소 : "); 
   for (t = 0; t < size; t++) printf("%d  ", a[t]); 
   printf("\n\n-------------- 선택 정렬 수행 --------------\n"); 
   for (i = 0; i < size - 1; i++) { 
      min = i; 
      for (j = i + 1; j < size; j++) { 
         if (a[j] < a[min])   min = j; 
      } 
      temp = a[i]; 
      a[i] = a[min]; 
      a[min] = temp; 
      printf("\n%d 단계 : ", i + 1); 
      for (t = 0; t < size; t++) printf("%3d ", a[t]); 
   } 
   printf("\n"); 
} 
int search(int a[], int size)  // 검색을 위한 함수. 
{ 
   int i = 0; 
   int value = 0; 
   printf("\n찾고자 하는 값(종료 -1) : "); 
   scanf("%d", &value);   //  찾을값 입력 부분. 
   fflush(stdin); 
   if(value == -1) 
   return -1; 
   for(i = 0; i < size; i++) 
   { 
      if(a[i] == value) 
      { 
         printf("찾는 값은 [%d]번째 있습니다.\n", i); 
         return 0; 
      } 
   } 
   printf("[%d] 값을 찾을수 없습니다.\n", value); 
   return 0; 
} 
void main() 
{ 
   int list[8] = { 69, 10, 30, 2, 16, 8, 31, 22 }; 
   int ret = 0; 
   int size = 8; 
   SelectionSort(list, size); 
   while(1){         
      ret = search(list, size); 
      if(ret == -1) 
          break; 
   } 
   getchar(); 
}  

 

 

반응형