티스토리 뷰
자바 버블정렬
버블정렬이란?
이웃한 인덱스중 큰 값을 뒤로 옮기는 방식이다. 인덱스 배열이 15, 11, 1, 3, 8이 있다고 가정하에 버블 정렬을 한다면
정렬은 다음과 같이 바뀐다.
정렬전 인덱스
15, 11, 1, 3, 8
1회전후 : 15가 11보다 크므로 자리바뀜
11, 15, 1, 3, 8
2회전후 : 15가 1보다 크므로 자리바뀜
11, 1, 15, 3, 8
3회전후 : 15가 3보다 크므로 자리바뀜
11, 1, 3, 15, 8
4회전후 : 15가 8보다 크므로 자리바뀜, 15가 가장 큰 수 이므로 이후로 마지막 자리는 비교 안해도됨
11, 1, 3, 8, 15
5회전후 : 11이 1보다 크므로 자리바뀜
1, 11, 3, 8, 15
6회전후 : 11이 3보다 크므로 자리 바뀜
1, 3, 11, 8, 15
7회전후 : 11이 8보다 크므로 자리 바뀜, 11이 두 번째로 큰 수이므로 이후로 4, 5번째 자리는 비교 안함.
1, 3, 8, 11, 15
이후 회전 : 정렬된 값이고, 순차적이므로 비교해도 자리 바뀜이 일어나지 않음.
총비교횟수 : n(n-1)/2
시간복잡도(빅오표기법)
최상 | 평균 | 최악 |
O(n^2) | O(n^2) | O(n^2) |
버블정렬 소스
/*
버블정렬
버블정렬은 이웃하는 인덱스를 비교하여 큰 데이터를 뒤로 보내는 방식이다.
*/
package algorithm;
public class BubbleSort {
public static void main(String[] args){
int[] index = {15, 11, 1, 3, 8}; // 정렬되지 않은 인덱스
int k, tmp;
System.out.println("시작값");
System.out.println("15, 11, 1, 3, 8");
System.out.println("");
for(int i = 0; i < index.length; i++){
for(int j = 0; j < index.length-i-1; j++){
if(index[j] > index[j+1]){
tmp = index[j];
index[j] = index[j+1];
index[j+1] = tmp;
}
}
for(k = 0; k < index.length; k++){
System.out.print(index[k]+" ");
}
System.out.println("");
}
}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 엠프레스 파타야 호텔
- 워킹홀리데이
- 변수
- 스프링
- happy new year
- 스프링 퀵 스타트
- 귀국
- 자바
- 프로그
- 개발자영어
- yyc
- 새해맞이
- 캐나다
- 캘거리 국제 공항
- 프로그래밍언어
- 온리프라이스카라멜팝콘
- 캘거리
- 개발자
- OOP
- JdbcTemplate
- 엠프레스
- 호텔
- javaw.exe
- 온리프라이스
- 프랑스 정품 직구 프랑스 옴므 알뤼르 옴므 에디션 블량쉐
- 온리 프라이스 카라멜맛 팝콘
- 카라멜팝콘
- 량량
- 2020
- 프로그클럽
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함