# Computer Science/알고리즘, 자료구조

[알고리즘] Bubble Sort, 버블 정렬

양 옆의 수를 바꿔주면서 진행하는 정렬

가장 오른쪽에 큰 수가 정렬되면서 진행

O(n^2)





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
36
37
38
39
#include <iostream>
using namespace std;
 
int time = 0;
 
int main(void){
    
    int nums[] = {11553976421081111112};
    
    int arrSize = sizeof(nums)/sizeof(nums[0]);
    
    for(int i = 0 ; i < arrSize; i++){
        cout << nums[i] << " ";    
    }
 
    cout << endl;
    int temp;
    
    // 인덱스 i는 전체 횟수 돌리기용(배열의 개수만큼), j는 양옆의 숫자 비교 
    for(int i = 0; i < arrSize; i++){
        time++;
        for(int j = 0; j < arrSize-i-1; j++){
            time++;
            if(nums[j]>= nums[j+1]){
                temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1= temp;    
            }
        }
    }
    
    for(int i=0; i<arrSize;i++){
        cout << nums[i] << " ";         
    }
    
    cout<<endl;
    cout<<time<<endl;
    return 0;
}
cs


728x90

'# Computer Science > 알고리즘, 자료구조' 카테고리의 다른 글

그래프 간단 정리  (0) 2021.06.02
트리 간단 정리  (0) 2021.05.31
[PS] 그리디 알고리즘  (0) 2021.03.02
[알고리즘] Selection Sort 선택 정렬  (0) 2018.12.21