Notice
Recent Posts
Recent Comments
Link
기린의 기록을 위한 공간
[C++] 버블정렬 (Bubble Sort) 본문
[버블정렬]
바로 옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내준다.
(가장큰 값을 맨 뒤로 보내줌)
[문제]
1 10 5 8 7 6 4 3 2 9 를 순서대로 정렬하세요
[풀이]
#include <stdio.h>
int main(void) {
int i, j, temp;
int array[10] = {1,10,5,8,7,6,4,3,2,9};
for (i = 0; i < 10; i++) {
for (j = 0; j < 9 - i; j++) { //뒤에서 부터 하나씩 줄면서 확인하기때문에 -i
if (array[j] > array[j + 1]) {
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
for (i = 0; i < 10; i++) {
printf("%d", array[i]);
}
}
[문제점]
첫번째 확인할때 10번 확인 1~10
두번째는 9번 확인 2~10
....
1 번 확인
등챠수열 -> n * (n+1) / 2 -> o(n*n) -> 10*(10+1)/2 =55
10개를 정렬하기 위해서 55번의 확인이 필요함
선택정렬보다 효율성이 떨어진다. 그 이유는 옆에있는 원소랑 자리를 매번 바꿔줘야 하기 때문이다.
'Algorithm > 기타' 카테고리의 다른 글
[C++]백준 14단계 2750번 : 수 정렬하기 (0) | 2020.02.03 |
---|---|
[C++] 퀵정렬 (Quick Sort) (0) | 2020.02.02 |
[C++] 삽입 정렬 (Insertion Sort) (0) | 2020.02.02 |
[C++] 선택정렬 (Selection Sort) (0) | 2020.02.02 |
[JAVA]프로그래머스[Hash] 1. 완주하지 못한 선수 (0) | 2020.02.02 |
Comments