본문 바로가기
알고리즘

C++ 버블정렬

by Chars4785 2019. 1. 10.

버블 정렬


ex)


4 7 8 9 1 2 3 10 

num =9;

i : 0

j : 0 1 2 3 4 5 6 7 8 

--------------------

i : 1 

j : 0 1 2 3 4 5 6 7

--------------------

i : 2

j : 0 1 2 3 4 5 6 


버블 정렬은 값 중에서 가장 큰 값을 끝으로 모는 방식이다. 


( 버블이 물방울이기 때문에 물위로 떠오른다를 생각하면 쉽다. ) 


j 와 i 를 설정하기 어렵지만 조금만 생각하면 쉽다. 




#include <iostream>
#include <vector>

using namespace std;



int main()
{
int num;
cin >>num;

int array[100];

for(int i =0;i<num;i++)
cin >> array[i];

for(int i=0;i<num;i++)
{
for(int j=0;i<num-i-1;j++)
{
if(array[j]>array[j+1])
{
int temp;
temp = array[j+1];
array[j+1]= array[j];
array[j] = temp;
}

}

for(int j=0;j<num;j++)
cout<< array[j];

}


return 0;
}



---------

응용


100개가 넘는 숫자중에서 3번째로 큰 수를 구하시오!!

라고 한다면 


버블 정렬 사용하는게 효율적이다. 이유는 버블을 3번만 쏘아 올리면 되기 때문이다. 




'알고리즘' 카테고리의 다른 글

C++ 재귀함수  (0) 2019.01.10
C++ 재귀 함수 ( 거듭제곱 )  (0) 2019.01.10
C++ 기약분수  (0) 2019.01.10
C++ 파스칼 삼각형  (0) 2019.01.07
C++ 피라미드  (0) 2019.01.07

댓글