메뉴 건너뛰기

Programing

C언어 게시판

버블정렬 사용하기

관리자2 2018.12.19 19:33 조회 수 : 166

#include <stdio.h>

 

int main() {

  int arr[10] = { 9, 17, 5, 6, 124, 112, 1, 3, 87, 55 };

  int i, j; // 반복문에 사용할 변수

  int temp; // 두 값을 바꿀 때 사용할 변수

  int length = sizeof(arr) / sizeof(int);

  

printf("정렬 전 : ");

for(i=0;i<length;i++){

printf("%d ", arr[i]);

}

for(i=0;i<length-1;i++){

for(j=0;j<length-1;j++){

if(arr[j] > arr[j+1]){

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

printf("\n정렬 후 : ");

for(i=0;i<length;i++){

printf("%d ", arr[i]);

}

  return 0;

}

_______________________________________________________________
#include <stdio.h>
 
int main() {
  int arr[10] = { 9, 17, 5, 6, 124, 112, 1, 3, 87, 55 };
  int i, j; // 반복문에 사용할 변수
  int temp; // 두 값을 바꿀 때 사용할 변수
  int length = sizeof(arr) / sizeof(int);
  
printf("정렬 전 : ");
for(i=0;i<length;i++){
printf("%d ", arr[i]);
}
for(i=0;i<length-1;i++){
for(j=0;j<length-1;j++){
if(arr[j] < arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("\n정렬 후 : ");
for(i=0;i<length;i++){
printf("%d ", arr[i]);
}
  return 0;
}
위의 코드는 오름차순 정렬이고 밑의 코드는 내림차순 정렬이다.
가운데 for문의 if문 안에 있는 부등호를 반대로 해주면 정렬이 반대가 된다.
버블정렬은 하나씩 대조하면서 값을 바꾸어준다.
 
위로