밍키의 마법세상
bubble sort code 본문
bubble sort는
6 | 5 | 4 | 3 | 2 | 1 |
5 | 6 | 4 | 3 | 2 | 1 |
5 | 4 | 6 | 3 | 2 | 1 |
5 | 4 | 3 | 6 | 2 | 1 |
5 | 4 | 3 | 2 | 1 | 6 |
위처럼 한번 시행에서 배열 안의 최대값은 배열의 맨 뒤에 위치하게 된다. 그러므로 다음 시행에서는 n-1번까지만 정렬을 해주면 된다.
항상 n^2만큼의 시간복잡도를 갖게 된다.
- C 구현 코드
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
31
32
33
34
35
|
#include <stdio.h>
void swap(int *n1, int *n2);
void bubble_sort(int list[]);
int main(){
int list[10];
for(int i = 0; i < 10; i++){
scanf("%d", &list[i]);
}
bubble_sort(list);
for(int i = 0; i<10; i++){
printf("%d ", list[i]);
}printf("\n");
}
void bubble_sort(int list[]){
for(int i = 0; i<10; i++){
for(int j = 0; j<9-i; j++){
if (list[j] > list[j+1]){
swap(&list[j], &list[j+1]);
}
}
}
}
void swap(int *n1, int *n2){
int tmp = *n1;
*n1 = *n2;
*n2 = tmp;
}
|
cs |
반응형
'Programming > C' 카테고리의 다른 글
파일 입출력&KMP Serching (0) | 2019.10.23 |
---|---|
Linear & Binary Search (0) | 2019.10.07 |
insertion sort 1 (삽입정렬) (0) | 2019.09.30 |
insertion sort 2 (최솟값 삽입정렬) (0) | 2019.09.30 |
입력한 문자열 2개씩 잘라서 출력하기 (0) | 2019.09.02 |
Comments