버블 정렬은 인접한 두 수를 비교하여 작은수를 앞으로 큰수를 뒤로 보내는 방법이다.(오름차순 기준)

정렬이 앞이아니라 뒤에서 부터 된다는 특징을 가진다.

 

 

시간 복잡도 : O(N^2)

 

 정렬 과정 

 

 

 

 알고리즘 

 

1. 첫번째 인덱스와 두번째 인덱스를 비교하여 큰수가 뒤로가게 교환한다.

2. 1번과정을 마지막 인덱스 까지 진행

3. 2번과정이 1번진행되면 가장 큰수가 뒤로 가기때문에 그다음 에는 마지막 인덱스-1까지 1-2 번 과정을 진행.

4. 정렬이 완벽해질때까지 진행.

 

 코드 

 

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
#include<iostream>
 
using namespace std;
 
int main() {
   int arr[10= { 1,10,5,8,7,6,2,4,3,9 };
   int idx, temp;
 
   cout << "정렬전 :";
   for (int i = 0; i < 10; i++)
      cout << arr[i] << " ";
   cout << endl << "정렬후 : ";
 
 
//버블 정렬 알고리즘 
   for (int i = 0; i < 10; i++) {
      for (int j = 0; j < 9-i; j++) {
         if (arr[j] > arr[j + 1]) {
            temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1= temp;
         }
 
      }
   }
 
 
 
   for (int i = 0; i < 10; i++)
      cout << arr[i] << " ";
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

 

'c++ > 알고리즘 공부' 카테고리의 다른 글

퀵 정렬 : quick sort  (0) 2020.05.06
삽입 정렬 : insert sort  (0) 2020.05.06
선택 정렬 : selection sort  (0) 2020.05.06
플루이드 - 와샬 알고리즘  (0) 2020.05.01
DFS(깊이 우선 탐색)  (0) 2020.04.30
ariz1623