알고리즘
C++ 버블정렬
Chars4785
2019. 1. 10. 17:29
버블 정렬
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번만 쏘아 올리면 되기 때문이다.