알고리즘 문제풀이/기본문제풀이
[기본문제풀이] bubble_sort
로디네로
2020. 12. 27. 14:28
반응형
풀이 일시 : 2020-07-28
버블정렬 :
->인접한 두 원소를 검사하여 앞의 원소의 크기가 더 크다면 자리를 바꾼다.
-> 처음 i가 0일때 실행한다면 인덱스의 맨 끝값이 가장 큰 값으로 설정될 것이다.
-> i를 늘려가며 끝까지 실행하면 뒤에서부터 정렬이 완료 될 것이다.
시간복잡도는 O(N^2)
문제 :
1 10 5 8 7 6 4 3 2 9 다음 숫자들을 오름차순으로 정렬하는 프로그램을 작성하시오
풀이 :
#include <stdio.h>
int main() {
int array[10] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 };
int temp,i,j;
for (i = 0; i < 10; i++) { //0~9까지 증가해야한다.
j = 0;
for (j = 0; j < 9 - i; j++) { //탐색범위는 i가 커질수록 줄어든다.
if (array[j] > array[j + 1]) { // 바로뒤와 SWAP
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for (int i = 0; i < 10; i++) {
printf("%d ", array[i]);
}
return 0;
}
반응형