버블 정렬 알고리즘 - C 언어

2021. 12. 11. 15:35·C
728x90
반응형

버블 정렬 알고리즘

첫번째 데이터와 두번째 데이터를 비교하고 두번째와 세번째 데이터를 비교하고 세번째와 네번째를 비교해 (중략) 1회전 반복이 끝나면 가장 큰 데이터가 맨 뒤로 가기 때문에 모든 반복을 돌고나면 오름차순 정렬이 되는 알고리즘이다.

 

1
2
3
4
5
6
7
for(i=0 ; i<n-1 ; i++) {
    for(j=0 ; j<n-1-i ; j++) {
        if(a[j] > a[j+1]){
            swap(a[j], a[j+1]);
        }
    }
}
cs

 

첫번째 반복문에서 i는 0부터 n-1까지 반복한다. 두번째 반복문에서 j는 0부터 n-1-i까지 반복한다.

a[j]와 a[j+1]를 비교했을 때 a[j]가 크다면 이 둘을 swap해준다. 1회전이 끝나면 가장 큰 데이터가 맨 뒤로 가기 때문에 그 다음 회전은 끝에서 두번째 데이터까지만 반복하여 비교하면 된다. 그렇기에 j<n-1-j이다.

 

EX)

초기 상태 [ 21  34  4  54  29  17 ]인 데이터 배열로 반복문을 돌 때 마다 배열을 보자면

[ 21  4  34  29  17  54 ] 빨간 숫자는 정렬이 끝나 제외된 숫자

[ 4  21  17  29  34  54 ]

[ 4  17  21  29  34  54 ]  = 정렬 끝

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'C' 카테고리의 다른 글

삽입 정렬 알고리즘 - C 언어  (0) 2021.12.11
단순 정렬 알고리즘 & 선택 정렬 알고리즘 - C 언어  (0) 2021.12.11
균형 이진 탐색 트리 : AVL 트리와 회전 연산 - C 언어  (0) 2021.10.18
Union-Find 알고리즘 (동치류 문제) / 크루스칼 알고리즘 - C 언어  (0) 2021.06.11
신장 트리 / 최소 비용 신장 트리 / 프림 알고리즘, 크루스칼 알고리즘 - C 언어  (0) 2021.06.10
'C' 카테고리의 다른 글
  • 삽입 정렬 알고리즘 - C 언어
  • 단순 정렬 알고리즘 & 선택 정렬 알고리즘 - C 언어
  • 균형 이진 탐색 트리 : AVL 트리와 회전 연산 - C 언어
  • Union-Find 알고리즘 (동치류 문제) / 크루스칼 알고리즘 - C 언어
waVwe
waVwe
    반응형
  • waVwe
    waVwe 개발 블로그
    waVwe
  • 전체
    오늘
    어제
    • ALL (184)
      • Python (1)
      • Spring (15)
      • DevOps (10)
      • Git (6)
      • JAVA (4)
      • C (22)
      • 코테 문제 풀이 (124)
        • 프로그래머스 (43)
        • 백준 (2)
        • 정올 (64)
        • SW Expert Academy (1)
        • 온코더 oncoder (14)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 🐙 Github
  • 공지사항

  • 인기 글

  • 태그

    스프링부트
    devops
    MSA
    형변환
    스파르타코딩
    깃헙
    연결리스트
    while문
    온코더
    스프링
    자료구조
    아파치카프카
    스파르타코딩클럽
    내일배움캠프
    깃
    CI/CD
    docker
    springboot
    java
    프로그래머스
    도커
    정올
    C
    자바
    progate
    코테
    C언어
    Til
    알고리즘
    이진트리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
waVwe
버블 정렬 알고리즘 - C 언어
상단으로

티스토리툴바