본문 바로가기

공부 기록/알고리즘

Do it! 알고리즘 코딩테스트 with JAVA - (7) 버블 정렬

버블 정렬

- 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식

- 간단하게 구현할 수 있지만, 시간복잡도는 O(n^2)으로 다른 정렬 알고리즘보다 속도가 느린 편이다.


버블 정렬 과정

  1. 비교 연산이 필요한 루프 범위를 설정한다.
  2. 인접한 데이터 값을 비교한다.
  3. swap 조건에 부합하면 swap 연산을 수행한다.
  4. 루프 범위가 끝날 때까지 2~3을 반복한다.
  5. 정렬 영역을 설정한다. 다음 루프를 실행할 때는 이 영역을 제외한다.
  6. 비교 대상이 없을 때까지 1~5를 반복한다.

- 만약 특정한 루프의 전체 영역에서 swap이 한 번도 발생하지 않았다면 그 영역 뒤에 있는 데이터가 모두 정렬됐다는 뜻이므로 프로세스를 종료해도 된다.


문제 풀이

https://yurison.tistory.com/436

 

[백준/자바] 2750 - 수 정렬하기

import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Buf

yurison.tistory.com


https://yurison.tistory.com/437

 

[백준/자바] 1377 - 버블 소트

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRead

yurison.tistory.com