Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 생산자 소비자 패턴
- zipkin
- Transaction Pattern
- java 정렬
- spring cloud
- Action Pattern
- Spring Boot Actuator
- 키클락
- Parallel Old GC
- saga pattern
- 사가 패턴
- TypeScript
- 스레드
- 디자인 패턴
- spring batch
- 멀티스레드
- Java
- 스프링 배치
- 타입스크립트
- Resilinece4j
- Serial GC
- JPA
- MSA
- Spring Cloud Netfilx Eureka
- 디자인패턴
- 체인 패턴
- thread
- 알고리즘
- The law of Demeter
- 배치
Archives
- Today
- Total
PSD( Private-Self-Development )
버블 정렬( Bubble sort ) 알고리즘 본문
버블 정렬 알고리즘?
서로 인접한 두 원소를 비교하여 오름차순 혹은 내림 차선으로 정렬한다.
1회전을 수행하고 나면 가장 큰 자료가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 자료는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두 번째 자료까지는 정렬에서 제외된다. 이렇게 정렬을 1회전 수행할 때마다 정렬에서 제외되는 데이터가 하나씩 늘어난다.
특징
장점
- 구현이 단순하다.
단점
- 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는 다른 모든 요소들과 교환되어야 한다.
- 즉 성능이 좋지않다.
- 때문에 거의 쓰이지 않는다.
구현
public static void bubbleSort( int[] target ){
for( int i = target.length - 1; i > 0; i -- ){
for( int j = 0; j < i; j++ ){
if( target[j] > target[j + 1] ){
int temp = target[j];
target[j] = target[j + 1];
target[j + 1] = temp;
}
}
}
}
시간 복잡도
최상, 평균, 최악 모두 O(n^2)
참고
https://gmlwjd9405.github.io/2018/05/06/algorithm-bubble-sort.html
[알고리즘] 버블 정렬(bubble sort)이란 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'Backend > 알고리즘' 카테고리의 다른 글
퀵 정렬( Quick sort ) 알고리즘 (0) | 2022.12.16 |
---|---|
병합 정렬( Merge sort ) 알고리즘 (0) | 2022.12.15 |
쉘 정렬( Shell sort ) 알고리즘 (0) | 2022.12.13 |
삽입 정렬( Insertion sort ) 알고리즘 (0) | 2022.12.12 |
선택 정렬( Selection sort ) 알고리즘 (0) | 2022.12.12 |