C언어 수업정리/4월 수업정리

4월 2일 버블정렬, 예제 7-6.c

송시혁 2013. 4. 2. 15:52

앞의 숫자와 뒤의 숫자를 비교하여 자리를 바꿔는 정렬.


내림차순으로 바꿀수도 있고 오름차순으로 바꿀수도있다.


다음은 관련예제.





#include <stdio.h>
void bubble_sort (int *array, int count);
void swap (int *px, int *py);
void printVector(int V[], int n);

int main()
{
  int vector[5= {5, 4, 3, 2, 1};
  bubble_sort (vector, sizeof(vector)/sizeof(vector[0]) );
    
}

void bubble_sort (int array[], int count)
//void bubble_sort (int *array, int count)
{
   int i;
   int j;

   printf("array : %d\n"sizeof(array));
  //array = &i;// array는 포인터!

   for(i = 0; i < count-1; i++)//전체도는 회수,count
   {
      for(j= 0; j<count -1 -i; j++)//세로줄 도는 회수
      {
         if(array[j] < array[j + 1])
         {
           swap(&array[j], &array[j + 1]);
           printVector (array, count);
         }
      }
      printf("\n");
  }

}
  

void swap (int *px, int *py)
{
  int temp;//위치바꾸기 위한 변수.
  temp = *px;
  *px = *py;
  *py= temp;
}

void printVector (int V[], int n)
{

  int i;
  for(i =0; i< n; i++)
  {
    printf("%5d", V[i]);
  }
  printf("\n");
}